无论如何在运行时动态地将数据列表与js中的输入相关联?

时间:2014-11-27 03:34:21

标签: javascript html5

我无法使用js将数据列表与输入相关联,但是如果我使用Chrome中的文档检查器手动添加列表属性,我就能够这样做。

经过一些研究后,我偶然发现list属性是只读的,http://msdn.microsoft.com/en-us/library/ie/hh772937(v=vs.85).aspx。这是否意味着无法使用js关联数据主义者,或者我使用了错误的属性?

我在运行时动态创建输入和数据列表,作为我正在制作的javascript库的一部分,因此我无法以正常方式附加数据列表。



//Please open console
var myTextInput = document.getElementById('myTextInput'),
  myDataList = document.getElementById('myDataList');

myTextInput.list = 'myDataList';
console.log(myTextInput.list); //Outputs: null

myTextInput.list = myDataList.id;
console.log(myTextInput.list); //Outputs: null

myTextInput.list = myDataList;
console.log(myTextInput.list); //Outputs: null

<form>
  <input type="text" id="myTextInput" />
  <datalist id="myDataList">
    <option value="1" />
    <option value="2" />
    <option value="3" />
  </datalist>
</form>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

使用setAttribute() - 适用于Firefox和Chrome:

myTextInput.setAttribute('list', 'myDataList');

我不知道你是否有jQuery可用,但如果你这样做,jQuery版本将是:

$(myTextInput).attr('list', 'myDataList');