我有以下代码;
$('#btnSave').click(function (e) {
$("input:text").each(function (index, value) {
var el = $(this);
if (el.val().length == 0) { el.css('border', '1px solid red') }
return false;
});
});
这里,所有输入文本元素都是动态创建的,因此我永远无法验证它们是否为空。
如何使用.on()
与.each()
一起使用?我用Google搜索没有运气..提前致谢..
答案 0 :(得分:4)
你的代码非常好,但摆脱了return false;
。在第一次输入命中后,它会停止.each()
循环。
<强> jsFiddle example 强>
答案 1 :(得分:1)
除非您点击页面上的元素不在页面上,否则它应该不是问题。 也因为你的回归是假的;当该字段为空时,只有第一个文本框将被赋予边框。其他的将被省略,即使是空的..
试试这个
$(function() {
$('#btn1').on('click' , function() {
var inp = '';
for(var i=1;i< 6;i++){
inp += '<input type="text" id="txt' + i + '"/>'
}
$('.textboxes').append(inp);
var isError = false;
$("input:text").each(function (index, value) {
var el = $(this);
if (el.val() == '') {
el.addClass('error');
isError = true;
}
});
if(isError){return false;}
});
});
另请查看此工作示例... FIDDLE