我有一个带有jquery的网页,生成动态html输入框。
页面上会出现类似的内容。
<input type="text" id="numbers[]" ></input>
<input type="text" id="numbers[]" ></input>
<input type="text" id="numbers[]" ></input>
<input type="text" id="numbers[]" ></input>
这些文本框都使用相同的自动填充程序,jQuery中是否可以将自动填充程序指向所有这些?
答案 0 :(得分:5)
首先,id在整个文档中应该是唯一的,因此您的代码不正确。
你可能意味着什么
<input type="text" name="numbers[]" ></input>
<input type="text" name="numbers[]" ></input>
<input type="text" name="numbers[]" ></input>
<input type="text" name="numbers[]" ></input>
要在这些框上启用自动填充功能,只需使用与其匹配的选择器
var data = "foo bar baz";
$('input[name^=numbers]').autocomplete(data);
答案 1 :(得分:0)
你可以添加一个包装输入并且永远不会更改的div,然后在创建新输入时将其id保存在jquery内部缓存中,就像这样:
var $input = '<input name=somename[] type="text"/>';
$('#mywrap').append($input);
$input.data('id', 'some id');
然后您可以通过以下方式访问自动完成程序:
$('#mywrap input').live('click', function() {
var id = $(this).data('id');
// and now do anything with the new id you have!
});