indexOf- getting' 0'虽然该项目不止一次出现

时间:2015-04-16 14:38:39

标签: jquery arrays validation input compare

我必须从我的表单中的动态输入创建一个数组,并检查是否有相同的值。

输入示例:

<input type="text" data-index="0" id="inputMail0" class="signup-input text-value" name="email[0]" placeholder="e.g. example@url.com">
<input type="text" data-index="1" id="inputMail1" class="signup-input text-value" name="email[1]" placeholder="e.g. example@url.com">

我使用以下js代码:

   function validation(value,element){
      $('form *').removeClass('ignore');
        var map = [];
        $('.email input[type="text"]').each(function() {
            if($(this).val()!="") {
                map.push($(this).val())
            }
        });
        $('.email input[type="text"]').each(function(){
            if (map.indexOf($(this).val())>=0){
                console.log($(this).val())
            }
        });

代码没有得到必要的结果。

1 个答案:

答案 0 :(得分:2)

尝试与每个循环合并

var map = [];

$('.email input[type="text"]').each(function(){
            if (map.indexOf($(this).val()) == -1){ // check the value exists
                map.push($(this).val())
            }
            else{
                // already exists
            }
 });