我无法使用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;
答案 0 :(得分:1)
使用setAttribute()
- 适用于Firefox和Chrome:
myTextInput.setAttribute('list', 'myDataList');
我不知道你是否有jQuery可用,但如果你这样做,jQuery版本将是:
$(myTextInput).attr('list', 'myDataList');