2016-05-20 8 views
1

私は、このHTMLがあります。入力にデータリストを割り当てる方法は?

<input type="text" name="city" autocomplete="off"> 

<datalist id="seek_list"> 
<option value="Value1"> 
<option value="Value2"> 
</datalist> 

と、このJavascriptを:

$('input[name=city]').on('keyup', function() 
{ 
    if (this.value.length > 1) 
    { 
     this.list = 'seek_list'; 
    } 
    else 
    { 
     this.list = ''; 
    } 
}); 

を私はオートコンプリートは、入力フィールドにユーザーが2以上の文字の後に仕事をしたいが、これは動作しません。データリストは割り当てられません。 私もこのアプローチを試みたが、運を持つ:

<input type="text" name="city" autocomplete="off" list="seek_list"> 

<datalist> 
<option value="Value1"> 
<option value="Value2"> 
</datalist> 

$('input[name=city]').on('keyup', function() 
{ 
    if (this.value.length > 1) 
    { 
     $('datalist')[0].id = "seek_list"; 
    } 
    else 
    { 
     $('datalist')[0].id = ""; 
    } 
}); 

働いていた唯一のことは、このHTMLを使用して空のデータリストだった:

<input type="text" name="city" autocomplete="off" list="seek_list"> 

<datalist id="seek_list"> 
</datalist> 

とJavaScriptを使用してデータリストにオプションを追加するが、それはでしたスロー。

答えて

2

あなたが.attr(attributeName, value).removeAttr(attributeName)

$('input[name=city]').on('keyup', function() { 
    if (this.value.length > 1) { 
     $(this).attr('list', 'seek_list'); 
    } else { 
     $(this).removeAttr('list') 
    } 
}); 
+0

を使用する要素の属性を設定する必要があります。しかし$(この).ATTR( 'リスト')とthis.listの違いは何ですか? NVMはここにあります:http://stackoverflow.com/questions/8426461/javascript-setattribute-vs-element-attribute-value-to-set-name-attribut – Tom

+1

@Tom、 'this.list'はあなたが'this'オブジェクトのプロパティです。 inputには 'list'プロパティがありません – Satpal

関連する問題