Javascript 检查是否有多个输入字段具有相同的值
如果页面上有多个输入字段具有相同的值,那么使用jQuery检查最简单的方法是什么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]=真; }); 您可以迭代所有输入元素,将其值存储在哈希表中,并检查
谢谢大家! 您可以迭代所有
输入
元素,将其值存储在哈希表中,并检查值是否已经存在:
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))
在检查多个输入字段中的重复值时,我想提供一个更有效的答案。当涉及到比较价值时,我们需要
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个文本框中的最后一个和第二个文本框之间存在重复怎么办?