Javascript 通过jquery检查在具有相同类的下拉框中输入的重复值
有5个下拉列表具有相同的类“className”。我必须确保在下拉列表中输入的值不重复 现在,我可以像这样按类访问jquery中的下拉列表Javascript 通过jquery检查在具有相同类的下拉框中输入的重复值,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,有5个下拉列表具有相同的类“className”。我必须确保在下拉列表中输入的值不重复 现在,我可以像这样按类访问jquery中的下拉列表 $('.className').each(function(){ //my Ques:: code to check if duplicate values are entered by the user }); 我的问题在评论中被称为“我的问题”我想有很多方法可以解决这个问题。例如,您可以将每个组合的值存储在一个数组中,并在每次迭代中检
$('.className').each(function(){
//my Ques:: code to check if duplicate values are entered by the user
});
我的问题在评论中被称为“我的问题”我想有很多方法可以解决这个问题。例如,您可以将每个组合的值存储在一个数组中,并在每次迭代中检查它以前是否已存储在数组中
var values = [];
$('.className').each(function(element, index){
if (values.indexOf($(this).val()) >= 0) {
//already exists
return false; //break the loop
}
values[index] = $(this).val();
});
您可以使用哈希表检查重复条目。检查这把小提琴: 对于html,可能如下所示
<select>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="saab">Saab</option>
<option class='className' value="mercedes">Mercedes</option>
<option class='className' value="audi">Audi</option>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="volvo">Volvo</option>
</select>
沃尔沃汽车
萨博
梅赛德斯
奥迪
沃尔沃汽车
沃尔沃汽车
沃尔沃汽车
您可以使用和检查其他系统上的选定值是否相同
过滤器:
将匹配的元素集减少为与选择器或
通过函数的测试
代码:
演示:
var hashtable = {};
$(".className").each(function () {
if(hashtable[this.text]) {
$(this).remove();
} else {
hashtable[this.text] = this.value;
}
});
<select>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="saab">Saab</option>
<option class='className' value="mercedes">Mercedes</option>
<option class='className' value="audi">Audi</option>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="volvo">Volvo</option>
<option class='className' value="volvo">Volvo</option>
</select>
function inputsHaveDuplicateValues() {
var hasDuplicates = false;
$('.className').each(function () {
var inputsWithSameValue = $(this).val();
hasDuplicates = $('.className').not(this).filter(function () {
return $(this).val() === inputsWithSameValue;
}).length > 0;
if (hasDuplicates) return false
});
return hasDuplicates;
}
$('button').click(function () {
alert(inputsHaveDuplicateValues());
})