希望你们都做得很好!
所以我有一个包含连续输入文本列表的表单。表单可以包含尽可能多的行,因为有一个“添加行”按钮,允许用户动态添加
我使用clone()来实现这个'添加行'功能,并且它正常运行
接下来,如果选中相应的复选框,则只能编辑行中的每个输入
我把代码放在小提琴上:FIDDLE DEMO
现在,当选中复选框时,我们直接将焦点放在第一个输入(我定义输入类='first'),一旦填充此输入,它就会直接聚焦到下一个输入。并且它工作正常,除了:如果我添加新行,焦点功能不再起作用。
我的焦点功能是:
$("input").keyup(function (event) {
if ($(this).val() != "") {
$(this).next('input').focus();
if ($(this).next('input[type="text"]').val() == "X") {
$(this).closest('.me').find('input').focus();
}
}
});
那应该是这样吗?或者我需要添加到脚本中吗?
谢谢!
答案 0 :(得分:5)
使用clone(true)
代替clone()
代码
var new_line = $('#content div.2dtme:last').clone(true).append();
您需要使用Event Delegation。您必须使用委托事件方法来使用.on()。
事件处理程序仅绑定到当前选定的元素;它们必须存在于您的代码进行事件绑定调用时的页面上。
即
$(document).on('event','selector',callback_function)
实施例
$('form').on('keyup', 'input', function (event) {
//Your code
});
而不是
$("input").keyup(function (event) {
//Your code
});