问题一
用户可以单击按钮以动态地将输入附加到表。提交后,应验证每个输入。以下内容适用于第一个附加输入,但不适用于后面的所有输入为空时(因为跨度已存在):
$('input[id^=item_name]').each(function() {
name = $(this).closest('tr').find('input[id^=item_name]').val();
if(name==null || name==''){
if ($('span:contains("Enter an item name")').length==0){
$(this).closest('td').addClass('has-error');
$(this).after('<span class="error" style="color:red;font-size:14px;">Enter an item name</span>');
}
}
});
如果我将$('span:contains("Enter an item name")')
更改为$(this).closest('span:contains("Enter an item name")').length==0
,则只会返回&#39; 0&#39;。我在哪里错了?
问题二
用户应立即收到对其中一个动态输入的更改满足错误的反馈。
$('input[id^=item_name]').focusout(function(){
name = $(this).closest('tr').find('input[id^=item_name]').val();
if(name==null || name==''){
if ($('span:contains("Enter an item name")').length==0){
$(this).closest('td').addClass('has-error');
$(this).after('<span class="error" style="color:red;font-size:14px;">Enter an item name</span>');
}
}
else {
$('span:contains("Enter an item name")').remove();
}
});
我可能在$('span:contains("Enter an item name")')
处遇到同样的问题。你的想法很感激。
答案 0 :(得分:0)
将$('span:contains("Enter an item name")')
更改为$(this).closest('td').find('span:contains("Enter an item name")')
似乎有效。