如何使用jquery知道重复的输入元素值?

时间:2013-09-30 15:13:18

标签: javascript jquery

我是web dev和jQuery的新手。我有输入元素与模糊事件绑定。

这是我的代码:

// this are my input elements:
<input class="input_name" value="bert" />
<input class="input_name" value="king kong" />
<input class="input_name" value="john" />
<input class="input_name" value="john" />

<script>

    $(".input_name").bind("blur",function(){
          alert(findDuplicate($(this).val()));
    })

    function findDuplicate(value){
          var result = 0;
          $(".input_name").each(function{
                 if($(this).val == value){
                        result++;
                 }
          });
    }

</script>

我的主要问题是当我将伯特改为约翰时,它会给我3个结果。我将如何免除事件发件人的检查?

3 个答案:

答案 0 :(得分:2)

就像其他人提到的那样,你有一些语法错误。此外,您可以让jQuery使用选择器为您找到它们,而不是显式迭代所有输入:

$(".input_name").bind("blur",function(){
    alert(findDuplicate($(this).val()));
})

function findDuplicate(value){
    return $(".input_name[value='" + value + "']").length - 1;
}

答案 1 :(得分:1)

$(".input_name").bind("blur", function () {
    alert(findDuplicate(this.value));
})

function findDuplicate(value) {
    var result = 0;
    $(".input_name").each(function(){
        if (this.value == value) {
            result++;
        }
    });
    return result - 1;
}

DEMO

答案 2 :(得分:0)

试试这个(未经测试):

$(".input_name").bind("blur",function(){
    var nth = $(this).index();
    alert(findDuplicate($(this).val(),nth));
})

function findDuplicate(value,nth){
      var result = 0;
      $(".input_name").each(function{
             if($(this).val == value && nth != index){
                    result++;
             }
      });
      return result;
}
相关问题