数组值验证错误,else else语句不起作用 我需要使用jquery
检查数组中是否存在该值 $(document).ready(function (){
$('.txtbox').focusout(function () {
var bind = [10];
var data = $(this).val();
for (var j = 0; j < 10; j++) {
if (bind[j] == data) {
alert("This Name Is Already Exist");
$(this).val("");
$(this).focus();
}
else {
bind[j] = data;
}
}
});
});
Html代码:
<input type="text" class = "txtbox" id="0"/>
<input type="text" class = "txtbox" id="1"/>
<input type="text" class = "txtbox" id="2"/>
答案 0 :(得分:3)
数据中只有一个元素,第二次迭代bind[j] == data
将通过异常,因为数组中仍有一个元素,并且您尝试访问第二个元素{{1}指向数组的第二个元素。这导致例外。您最好使用indexOf在数组中查找元素。同时声明数组外部事件处理程序,使其成为全局数据,以便在下一次j=1
调用之前保存数据。
<强> Live Demo 强>
focusout
答案 1 :(得分:1)
var bind = [10];不会创建一个大小为10的数组...而是一个只包含一个元素的数组。因此,你不能将10次迭代的循环应用于该数组!