Javascript 通过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 }); 我的问题在评论中被称为“我的问题”我想有很多方法可以解决这个问题。例如,您可以将每个组合的值存储在一个数组中,并在每次迭代中检

有5个下拉列表具有相同的类“className”。我必须确保在下拉列表中输入的值不重复

现在,我可以像这样按类访问jquery中的下拉列表

$('.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());
})