Jquery 如何检查“其他选择”中是否已选择该选项

Jquery 如何检查“其他选择”中是否已选择该选项,jquery,Jquery,在jQuery中是否可以检查other是否正在尝试选择一个已经选择的选项 <select id="question1"> <option>questionaire_1</option> <option>questionaire_2</option> <option>questionaire_3</option> </select> <select id="question2">

在jQuery中是否可以检查other是否正在尝试选择一个已经选择的选项

<select id="question1">
  <option>questionaire_1</option>
  <option>questionaire_2</option>
  <option>questionaire_3</option>
</select>

<select id="question2">
  <option>questionaire_1</option>
  <option>questionaire_2</option>
  <option>questionaire_3</option>
</select>
如果用户在问题1中选择了问题1,然后在问题2中再次尝试选择该问题,则用户应无法再选择该问题,然后发出已选择的警报

我有很多选择。这一定是在比较所有人。我不知道怎么做,泰雅


更新1:也许他们投票是因为这让人困惑,但问题是选择,它的内容都是动态的,可以做出数百次选择。。我的道歉

您可以使用更改事件进行检查,我们将有一个数组,其中包含以前选择的选项,我们将测试该数组是否包含新选择的值,如果是,我们将发出警报,否则我们将其推送到数组,如果我们更改选项,此代码可以优化以删除值

    var valuesArray = [];
    $('select').on('change',function(e){
      if( $.inArray($(this).value, valuesArray) ){
         alert('u selected the same option before');
      }else{
        // Your logic here
        valuesArray.push($(this).value);
      }
    });
更改选择框时,只需检查val,如下所示:

$("#question2").on("change", function() {
       if ($("#question2").val() == $("#question1").val())
          alert("Whoops!")
    })
例如: 试试这个:

$document.readyfunction{ $2.changefunction{ var selected1=$question1选项:selected.val; var selected2=$question2选项:selected.val; 如果selectedid1==selectedID2{ 警报“已选定”; } }; }; -选择一个选项- 问卷调查1 问卷调查2 问卷3 -选择一个选项- 问卷调查1 问卷调查2 问卷3
选中此处,它将根据第一次选择更改禁用第二次选择的选项

$'question1'。关于'change',函数{ $“问题2选项”。每个函数i,v{ $this.removeAttr'disabled'; }; $'question2'.findoption[value='+$this.val+'].attr'disabled','disabled'; }; 问卷调查1 问卷调查2 问卷3 检查这个 问卷调查1 问卷调查2 问卷3 试试这个:

HTML:

小提琴:

解决了

或其他方式:

另一种方法是,您可以在选择后禁用所有其他的。e、 g:

$('select').not(this).each(function() {
    $(this).find('option')
    .prop('disabled',false).filter('[value="'+selected_value+'"]')
    .prop('disabled',true);
});

注意:此代码检查具有相同城市类的所有选择,您可以将具有城市类的无限选择添加到文档中

<html>

<head>
    <style>
    .city{
        display: block;
        height: 40px;
        width:400px;
    }
</style>
</head>

<body>
    <select class="city">
            <option value="Tehran" >Tehran</option>
            <option value="Tabriz" selected  >Tabriz</option>
            <option value="Karaj" >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />
    <br />

    <select class="city">
            <option value="Tehran" selected >Tehran</option>
            <option value="Tabriz"   >Tabriz</option>
            <option value="Karaj" >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />
    <br />

        <select class="city">
            <option value="Tehran" >Tehran</option>
            <option value="Tabriz"   >Tabriz</option>
            <option value="Karaj" selected >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />


    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>
    <script>
        $(document).ready(function () {
            var cityCombo = $("select.city");
            var oldValue = null;

            cityCombo.focus(function(){
                oldValue = $(this).val();
            });

            cityCombo.change(function (event) {
                var currentValue = $(this).val();
                var otherComboSelectedValues = cityCombo.not($(this)).children("option:selected ");
                var canSelect = true;
                otherComboSelectedValues.each(function () {
                    if ($(this).val() == currentValue) {
                        alert("you can't select this item");
                        canSelect = false;
                        return false;
                    }
                });

                if(!canSelect){
                    $(this).val(oldValue);
                    oldValue = false;
                }

            });

        });
    </script>
</body>

</html>

您可以根据第一个选择元素更改事件从第二个选择元素中删除并禁用该选项。您是否具有值?是,它确实具有值,并且在选项中也具有值dynamic@GelliEspiritu检查我下面给出的答案如果我的内容达到问题100?我还需要在jquery中输入每个id吗?@GelliEspiritu现在检查,它的generic@GelliEspiritu我已更新我的答案&包括小提琴链接,请尝试:
$('select').not(this).each(function() {
    $(this).find('option')
    .prop('disabled',false).filter('[value="'+selected_value+'"]')
    .prop('disabled',true);
});
<html>

<head>
    <style>
    .city{
        display: block;
        height: 40px;
        width:400px;
    }
</style>
</head>

<body>
    <select class="city">
            <option value="Tehran" >Tehran</option>
            <option value="Tabriz" selected  >Tabriz</option>
            <option value="Karaj" >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />
    <br />

    <select class="city">
            <option value="Tehran" selected >Tehran</option>
            <option value="Tabriz"   >Tabriz</option>
            <option value="Karaj" >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />
    <br />

        <select class="city">
            <option value="Tehran" >Tehran</option>
            <option value="Tabriz"   >Tabriz</option>
            <option value="Karaj" selected >Karaj</option>
            <option value="Esfahan" >Esfahan</option>
        </select>
    <br />


    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>
    <script>
        $(document).ready(function () {
            var cityCombo = $("select.city");
            var oldValue = null;

            cityCombo.focus(function(){
                oldValue = $(this).val();
            });

            cityCombo.change(function (event) {
                var currentValue = $(this).val();
                var otherComboSelectedValues = cityCombo.not($(this)).children("option:selected ");
                var canSelect = true;
                otherComboSelectedValues.each(function () {
                    if ($(this).val() == currentValue) {
                        alert("you can't select this item");
                        canSelect = false;
                        return false;
                    }
                });

                if(!canSelect){
                    $(this).val(oldValue);
                    oldValue = false;
                }

            });

        });
    </script>
</body>

</html>