这是我在这里的第一篇文章,我之前在这里找到了答案 我有一个表单,我可以添加具有自动完成功能的字段 在创建它们时,不是在每个字段中添加自动完成,而是可以使用事件绑定来添加自动完成功能吗? 当谈到javascript中的事件时,我是新手 这就是我使用事件绑定添加新行所做的工作(完美地工作)。
$(function() {
$('input[name=addItem]')
.bind('click', function() {
var line = $('#list > div').size()+1;
divId = 'line-'+line;
var divCloned = $('#line-1').clone();
divCloned.attr('id', divId);
$('#list').append(divCloned);
var inputs = $(divCloned).children('input').get();
for (var i in inputs) {
inputs[i].value='';
inputs[i].id = inputs[i].id.replace(/\d+/, line);
inputs[i].name = inputs[i].name.replace(/\d+/, line);
}
this.blur();
});
});
我甚至不确定我是否以适当的方式提出了我的问题 谢谢。
答案 0 :(得分:0)
如果我正确理解您的问题,您希望自动填充应用于所有输入字段吗?你可以通过推广你的选择器来做到这一点,所以不要将事件添加到$('input[name=addItem]')
(含义:对于所有类型为“input”的标签,并将属性“name”设置为“additem”),你可以使用{ {1}}将您的事件绑定到属性“type”设置为“text”的所有输入标记。
根据您的应用程序,是否要根据点击的输入字段更改建议的自动完成?在事件处理程序中需要更多逻辑。
答案 1 :(得分:0)
选项1:复制原始自动填充
您可以使用.clone(true)
制作包含事件处理程序的 .clone()
:
var divCloned = $('#line-1').clone(true);
这应包括#line-1
的自动填充功能,因此上面的代码替换了代码中的相应代码行,您应该全部设置。
选项2:使用不同的选项创建新的自动填充
如果您想更改自动填充功能,可以再次进行设置:
var divCloned = $('#line-1').clone(); // <== Don't copy the event handlers.
// ... do things, set variables, append divCloned, whatever
// Now set the autocomplete with different options from the original
divCloned.autocomplete({ ... });