用于检查现有数据的数组值验证错误

时间:2014-01-01 11:18:36

标签: javascript jquery jquery-ui

数组值验证错误,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"/>

2 个答案:

答案 0 :(得分:3)

数据中只有一个元素,第二次迭代bind[j] == data将通过异常,因为数组中仍有一个元素,并且您尝试访问第二个元素{{1}指向数组的第二个元素。这导致例外。您最好使用indexOf在数组中查找元素。同时声明数组外部事件处理程序,使其成为全局数据,以便在下一次j=1调用之前保存数据。

<强> Live Demo

focusout

答案 1 :(得分:1)

var bind = [10];不会创建一个大小为10的数组...而是一个只包含一个元素的数组。因此,你不能将10次迭代的循环应用于该数组!