Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否有多个输入字段具有相同的值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 检查是否有多个输入字段具有相同的值

Javascript 检查是否有多个输入字段具有相同的值,javascript,jquery,html,Javascript,Jquery,Html,如果页面上有多个输入字段具有相同的值,那么使用jQuery检查最简单的方法是什么 谢谢大家! 您可以迭代所有输入元素,将其值存储在哈希表中,并检查值是否已经存在: var hash=Object.create(null), 结果=[].some.call(document.getElementsByTagName('input'),函数(inp){ if(hash[inp.value])返回true; 哈希[inp.value]=真; }); 您可以迭代所有输入元素,将其值存储在哈希表中,并检查

如果页面上有多个输入字段具有相同的值,那么使用jQuery检查最简单的方法是什么


谢谢大家!

您可以迭代所有
输入
元素,将其值存储在哈希表中,并检查值是否已经存在:

var hash=Object.create(null),
结果=[].some.call(document.getElementsByTagName('input'),函数(inp){
if(hash[inp.value])返回true;
哈希[inp.value]=真;
});

您可以迭代所有
输入
元素,将其值存储在哈希表中,并检查值是否已经存在:

var hash=Object.create(null),
结果=[].some.call(document.getElementsByTagName('input'),函数(inp){
if(hash[inp.value])返回true;
哈希[inp.value]=真;
});

获取所有输入元素,排序并检查是否存在重复项

 var elements = document.getElementsByTagName("input")
    var values = [];
    for (var i = 0; i < elements.length; i++) {
        values.push(elements[i].value);
    }
    var sortedValues = values.sort();
    for (var o = 0; o < values.length-1; o++) {
        if (values[o] == values[o+1])
            alert ('Duplicate!');
    }
var elements=document.getElementsByTagName(“输入”)
var值=[];
对于(var i=0;i
获取所有输入元素,排序并检查是否存在重复项

 var elements = document.getElementsByTagName("input")
    var values = [];
    for (var i = 0; i < elements.length; i++) {
        values.push(elements[i].value);
    }
    var sortedValues = values.sort();
    for (var o = 0; o < values.length-1; o++) {
        if (values[o] == values[o+1])
            alert ('Duplicate!');
    }
var elements=document.getElementsByTagName(“输入”)
var值=[];
对于(var i=0;i
解决方案是编写一个循环,并遍历每个输入字段以获得可能的匹配。如果您使用的是jQuery,那么它实际上非常简单

假设我们有一个包含3个输入字段的简单HTML页面

HTML:
解决方案是编写一个循环,并遍历每个输入字段以获得可能的匹配。如果您使用的是jQuery,那么它实际上非常简单

假设我们有一个包含3个输入字段的简单HTML页面

HTML:
您可以循环所有输入并生成如下所示的数据结构

var inputs = {};
$("input").each(function(i, elem) {
    if (inputs.hasOwnProperty(elem.value)) {
        inputs[elem.value] += 1;
    } else {
        inputs[elem.value] = 1;
    }
});
alert (JSON.stringify(inputs, null, 4))

您可以循环所有输入并生成如下所示的数据结构

var inputs = {};
$("input").each(function(i, elem) {
    if (inputs.hasOwnProperty(elem.value)) {
        inputs[elem.value] += 1;
    } else {
        inputs[elem.value] = 1;
    }
});
alert (JSON.stringify(inputs, null, 4))

在检查多个输入字段中的重复值时,我想提供一个更有效的答案。当涉及到比较价值时,我们需要

  • 迭代并暂时将当前元素保留在某个位置
  • 重新迭代并对照先前保留的值检查其是否重复
  • 执行步骤2时,我们需要确保跳过将先前保留的(步骤1)值与自身进行比较 如果我没有错的话,我在上述所有答案中都看到了步骤1和2,但没有看到步骤3

    下面的代码将执行所有这3个步骤

      var eqArr = []; 
      var currentInput;
      $("input").each(function(k1, v1) {
        if($(v1).val() != ''){
          currentInput = $(v1);
          $("input").each(function(k2, v2) {
            if(k1 !== k2 && 
               currentInput.val() === $(v2).val() &&
               $.inArray($(this).attr('id'), eqArr) === -1){
               eqArr.push($(this).attr('id'));
            }
          });
        }        
      });
    
    在上面的代码中,我收集这些重复项的输入字段的id(在数组中)。执行上述逻辑后,执行以下简单检查将告诉您是否有重复项

    if(eqArr.length > 0){
         //It means we have duplicates                            
    }
    
    var eqArr=[];
    无功电流输入;
    $(“输入”)。每个(功能(k1,v1){
    如果($(v1).val()!=“”){
    currentInput=$(v1);
    $(“输入”)。每个(功能(k2,v2){
    如果(k1!==k2&&
    currentInput.val()==$(v2.val())&&
    $.inArray($(this.attr('id'),eqArr)=-1){
    eqArr.push($(this.attr('id'));
    }
    });
    }
    });
    控制台日志(eqArr)
    
    
    输入字段重复
    
    在检查多个输入字段中的重复值时,我想提供一个更有效的答案。当涉及到比较价值时,我们需要

  • 迭代并暂时将当前元素保留在某个位置
  • 重新迭代并对照先前保留的值检查其是否重复
  • 执行步骤2时,我们需要确保跳过将先前保留的(步骤1)值与自身进行比较 如果我没有错的话,我在上述所有答案中都看到了步骤1和2,但没有看到步骤3

    下面的代码将执行所有这3个步骤

      var eqArr = []; 
      var currentInput;
      $("input").each(function(k1, v1) {
        if($(v1).val() != ''){
          currentInput = $(v1);
          $("input").each(function(k2, v2) {
            if(k1 !== k2 && 
               currentInput.val() === $(v2).val() &&
               $.inArray($(this).attr('id'), eqArr) === -1){
               eqArr.push($(this).attr('id'));
            }
          });
        }        
      });
    
    在上面的代码中,我收集这些重复项的输入字段的id(在数组中)。执行上述逻辑后,执行以下简单检查将告诉您是否有重复项

    if(eqArr.length > 0){
         //It means we have duplicates                            
    }
    
    var eqArr=[];
    无功电流输入;
    $(“输入”)。每个(功能(k1,v1){
    如果($(v1).val()!=“”){
    currentInput=$(v1);
    $(“输入”)。每个(功能(k2,v2){
    如果(k1!==k2&&
    currentInput.val()==$(v2.val())&&
    $.inArray($(this.attr('id'),eqArr)=-1){
    eqArr.push($(this.attr('id'));
    }
    });
    }
    });
    控制台日志(eqArr)
    
    
    输入字段重复
    
    编写循环,列出当前值。然后再次运行相同的循环,并将每个值与该列表中的值进行比较。编写一个循环,列出当前值。然后再次运行相同的循环,并将每个值与该列表中的值进行比较。@davidsonsosa我以为您在寻找jQuery解决方案。您可以查看我的答案,寻找基于jQuery的解决方案。@Davidsonsosa我以为您在寻找jQuery解决方案。您可以检查我的答案,以获得基于jQuery的解决方案。在这里,您只匹配当前字段和上一个字段,如果5个文本框中的最后一个和第二个文本框之间存在重复怎么办?在这里,您只匹配当前字段和上一个字段,如果5个文本框中的最后一个和第二个文本框之间存在重复怎么办?