几个选择框重复值比较

时间:2015-11-26 00:09:35

标签: jquery compare selectedvalue

我想比较选择框选择的选项值,如果选择框中有重复值,我想显示警告:

alert("Duplicate value!");

这是我的代码:

<select class="examSelect">
    <option value="one">ba</opion>
    <option value="two">woo</opion>
    <option value="three">coo</opion>
    <option value="four">po</opion>
</select>

<select class="examSelect">
    <option value="one">ba</opion>
    <option value="two">woo</opion>
    <option value="three">coo</opion>
    <option value="four">po</opion>
</select>

<select class="examSelect">
    <option value="one">ba</opion>
    <option value="two">woo</opion>
    <option value="three">coo</opion>
    <option value="four">po</opion>
</select>

2 个答案:

答案 0 :(得分:1)

这是一种使用对象属性的方法。它会在第一次看到它时创建属性,如果它第二次看到相同的值,它就会爆发并发出警报。

可以很容易地对其进行修改以保持重复次数,例如&#34;你进入了'woo&#39; 3种不同的选择!&#34;

它还可以扩展HTML中的其他选择框而无需修改,因为它使用jQuery each()来调查每个匹配的下拉列表。

function checkit() {
    var checker = {};
    $(".examSelect").each(function() {
        var selection = $(this).val();
        if ( checker[selection] ) {
            //if the property is defined, then we've already encountered this value
            alert("Duplicate(s) detected!");
            return false;
        } else {
            //first time we've seen this value, so let's define a property for it
            checker[selection] = true;
        }
    });
    console.log(checker); //remove this in production
}

https://jsfiddle.net/y5y9uy5v/2/

答案 1 :(得分:0)

你可以使用这样的东西来比较所有三个选择..下一个代码将检查它们是否都具有相同的值警报是.. make if if statements

$(document).ready(function(){
    $('.examSelect').on('change',function(){
        var examSelect0 = $('.examSelect').eq(0).val();
        var examSelect1 = $('.examSelect').eq(1).val();
        var examSelect2 = $('.examSelect').eq(2).val();
        if(examSelect0 == examSelect1 && examSelect1 == examSelect2){
            alert('yes');
        }
    });
});

DEMO

如果在其中2个上复制了值

,则可以使用此if语句
if(examSelect0 == examSelect1 || examSelect1 == examSelect2 || examSelect0 == examSelect2){
     alert("Duplicate value!");
 }