检查在 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:

http://jsfiddle.net/v025hkjn/

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

演示:http://jsfiddle.net/IrvinDominin/u3czyjt4/