【问题标题】:Javascript: How to check if each input value is duplicated to another input valueJavascript:如何检查每个输入值是否与另一个输入值重复
【发布时间】:2016-12-12 12:11:13
【问题描述】:

所以我有一个动态输入字段来自附加不同的类名和名称,我想检查每个输入字段值是否已经存在或重复。

这看起来像

第一个criteria_name 是默认的,其他是附加的。

<input type="text" name="criteria_name" class="criteria_name">
<input type="text" name="criteria_name2" class="criteria_name2">
<input type="text" name="criteria_name3" class="criteria_name3">
<input type="text" name="criteria_name4" class="criteria_name4">
<input type="text" name="criteria_name5" class="criteria_name5">

如果没有重复,我正在尝试检查每一个,否则继续。

 var critname_arr = [];
 var input_check;
 var crit_name_of_first = $('input.criteriaNames').val();
 var acappended = append_crit_header+1;
 var count_to = 0;

 for(var ab = 2; ab<=acappended; ab++){
      var crit_arr;

    if(crit_name_of_first == $('input.criteria_each_name'+ab+'').val()){
        alert("Criteria cannot be duplicate");
        return false;
    }else{

        input_check = $('input.criteria_each_name'+ab);
        input_check.each(function(){
            crit_arr = $.trim($(this).val());           
        });
        critname_arr.push(crit_arr);
    }
    if($('input.criteria_each_name'+ab+'').val() == critname_arr[count_to]){
            alert('criteria cannot be duplicate');
            return false;
    }
    count_to++;
}
console.log(critname_arr);

【问题讨论】:

  • 您可能会帮助自己使用类作为选择器而不是 id 值。然后你可以只按类选择并使用$.each 来迭代
  • 哦,我忘了它的类 srry
  • 如果重复的话,还是一样的,不能相互比较,
  • 那么这个'input#criteria_name' 将不能用作选择器。您还需要使用相同的类名.criteria_name,而不是编号。
  • 哦,等一下试试

标签: javascript jquery html arrays


【解决方案1】:

这只是一个示例,说明如何做到这一点。在小提琴中,将其中一个值更改为另一个字段中已经存在的值(制作重复值)以查看它执行的操作。如果没有重复,它不会做任何事情。单击“按钮”文本以运行重复检查:

jsFiddle: https://jsfiddle.net/o52gjj0u/

<script>
$(document).ready(function(){
    $('.ter').click(function(e) {
        var stored  =   [];
        var inputs  =   $('.criteria_name');
        $.each(inputs,function(k,v){
            var getVal  =   $(v).val();
            if(stored.indexOf(getVal) != -1)
                $(v).fadeOut();
            else
                stored.push($(v).val());
        });
    });
});
</script>
<!-- Just use an array name for the input name and same class name as well -->
<div class="ter">Button</div>
<input type="text" name="criteria_name[]" class="criteria_name" value="1" />
<input type="text" name="criteria_name[]" class="criteria_name" value="2" />
<input type="text" name="criteria_name[]" class="criteria_name" value="3" />
<input type="text" name="criteria_name[]" class="criteria_name" value="4" />
<input type="text" name="criteria_name[]" class="criteria_name" value="5" />

【讨论】:

  • 有趣我试试这个
猜你喜欢
  • 2016-09-07
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
相关资源
最近更新 更多