动态输入框的JQuery自动完成

时间:2009-08-12 15:54:16

标签: javascript jquery html autocomplete

我有一个带有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中是否可以将自动填充程序指向所有这些?

2 个答案:

答案 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!
});