检查在 class 到 jquery 下拉框中输入的重复值
checking for a duplcate value entered inside dropdown box with same class through jquery
有 5 个下拉菜单具有相同的 class 'className'。我必须确保在下拉列表中输入的值不重复。
现在,我可以像这样class访问jquery中的下拉菜单
$('.className').each(function(){
//my Ques:: code to check if duplicate values are entered by the user
});
我的问题在评论里写成"my ques"
我想有很多方法可以解决这个问题。例如,您可以将每个组合的值存储在一个数组中,并在每次迭代中检查它是否已经存储在先前的数组中。
var values = [];
$('.className').each(function(element, index){
if (values.indexOf($(this).val()) >= 0) {
//already exists
return false; //break the loop
}
values[index] = $(this).val();
});
var array = []; // push all the values in array
$('.className').each(function(){
// check if the value is in array
if( $.inArray($(this).val(),array) > 0)
console.log('duplicate found ', $(this).val());
else
array.push($(this).val()
// if not insert into array
});
您可以使用哈希表来检查重复条目。检查这个 fiddle:
var hashtable = {};
$(".className").each(function () {
if(hashtable[this.text]) {
$(this).remove();
} else {
hashtable[this.text] = this.value;
}
});
对于 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>
您可以使用 val
and filter
检查所选值是否与其他值相同。
过滤器:
Reduce the set of matched elements to those that match the selector or
pass the function's test.
代码:
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());
})
有 5 个下拉菜单具有相同的 class 'className'。我必须确保在下拉列表中输入的值不重复。
现在,我可以像这样class访问jquery中的下拉菜单
$('.className').each(function(){
//my Ques:: code to check if duplicate values are entered by the user
});
我的问题在评论里写成"my ques"
我想有很多方法可以解决这个问题。例如,您可以将每个组合的值存储在一个数组中,并在每次迭代中检查它是否已经存储在先前的数组中。
var values = [];
$('.className').each(function(element, index){
if (values.indexOf($(this).val()) >= 0) {
//already exists
return false; //break the loop
}
values[index] = $(this).val();
});
var array = []; // push all the values in array
$('.className').each(function(){
// check if the value is in array
if( $.inArray($(this).val(),array) > 0)
console.log('duplicate found ', $(this).val());
else
array.push($(this).val()
// if not insert into array
});
您可以使用哈希表来检查重复条目。检查这个 fiddle:
var hashtable = {};
$(".className").each(function () {
if(hashtable[this.text]) {
$(this).remove();
} else {
hashtable[this.text] = this.value;
}
});
对于 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>
您可以使用 val
and filter
检查所选值是否与其他值相同。
过滤器:
Reduce the set of matched elements to those that match the selector or pass the function's test.
代码:
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());
})