javascript - 禁用 selectlsit 项目未按预期工作

标签 javascript jquery select drop-down-menu

我的“选择”列表有问题。我有三个,它们都具有相同的值。如果在其中一个列表中选择了一个值,则它在其他两个选择列表中被禁用。但是,当我选择 Monday = "Måndag"时,它会禁用 Monday 和最后四项。我从所有选择列表中得到相同的行为。我做错了什么?

$("#Förstahandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Andrahandsval option[value*=" + newValue + "]").prop('disabled', true);
    $("#Tredjehandsval option[value*=" + newValue + "]").prop('disabled', true);
    //Av selecterar förra valet i de andra dropdowns
    $("#Andrahandsval option[value*=" + prevValue + "]").prop('disabled', false);
    $("#Tredjehandsval option[value*=" + prevValue + "]").prop('disabled', false);

  });
//-----------------------------------------------------
$("#Andrahandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Förstahandsval option[value*=" + newValue + "]").prop('disabled', true);
    $("#Tredjehandsval option[value*=" + newValue + "]").prop('disabled', true);;
    //Av selecterar förra valet i de andra dropdowns
    $("#Förstahandsval option[value*=" + prevValue + "]").prop('disabled', false);
    $("#Tredjehandsval option[value*=" + prevValue + "]").prop('disabled', false);

  });
//--------------------------------------------------------------------------

$("#Tredjehandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Andrahandsval option[value*=" + newValue + "]").prop('disabled', true);
    $("#Förstahandsval option[value*=" + newValue + "]").prop('disabled', true);
    //Av selecterar förra valet i de andra dropdowns
    $("#Andrahandsval option[value*=" + prevValue + "]").prop('disabled', false);
    $("#Förstahandsval option[value*=" + prevValue + "]").prop('disabled', false);

  });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="FörstahandsvalHidden" type="text" name="Förstahandsval" value="" hidden />
<div class="form-group">
  <label for="Förstahandsval">Förstahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>
  <select class="form-control" id="Förstahandsval">
                                            <option value="0">Förstahandsval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>
                                        </select>
</div>

<!-- Val2 -->
<input id="AndrahandsvalHidden" type="text" name="Andrahandsval" value="" hidden />
<div class="form-group">
  <label for="Andrahandsval">Andrahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>

  <select class="form-control" id="Andrahandsval">
                                            <option value="0">Andrahandsval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>>
                                        </select>
</div>

<!-- Val3 -->
<input id="TredjehandsvalHidden" type="text" name="Tredjehandsval" value="" hidden />
<div class="form-group">
  <label for="Tredjehandsval">Förstahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>
  <select class="form-control" id="Tredjehandsval">
                                            <option value="0">Tredjehandval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>
                                        </select>
</div>

最佳答案

检查值时删除 * 符号。此 option[value=*"+ newValue + "] 需要为 option[value="+ newValue + "]。放置一个星号使其包含而不是等于

$("#Förstahandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Andrahandsval option[value=" + newValue + "]").prop('disabled', true);
    $("#Tredjehandsval option[value=" + newValue + "]").prop('disabled', true);
    //Av selecterar förra valet i de andra dropdowns
    $("#Andrahandsval option[value=" + prevValue + "]").prop('disabled', false);
    $("#Tredjehandsval option[value=" + prevValue + "]").prop('disabled', false);

  });
//-----------------------------------------------------
$("#Andrahandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Förstahandsval option[value=" + newValue + "]").prop('disabled', true);
    $("#Tredjehandsval option[value=" + newValue + "]").prop('disabled', true);;
    //Av selecterar förra valet i de andra dropdowns
    $("#Förstahandsval option[value=" + prevValue + "]").prop('disabled', false);
    $("#Tredjehandsval option[value=" + prevValue + "]").prop('disabled', false);

  });
//--------------------------------------------------------------------------

$("#Tredjehandsval").focusin(function() {
    $(this).data('val', $(this).val());
  })
  .change(function() {
    var newValue = this.value;
    var prevValue = $(this).data('val');

    //Gör vald tid ovalbar i de andra dropdown
    $("#Andrahandsval option[value=" + newValue + "]").prop('disabled', true);
    $("#Förstahandsval option[value=" + newValue + "]").prop('disabled', true);
    //Av selecterar förra valet i de andra dropdowns
    $("#Andrahandsval option[value=" + prevValue + "]").prop('disabled', false);
    $("#Förstahandsval option[value=" + prevValue + "]").prop('disabled', false);

  });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="FörstahandsvalHidden" type="text" name="Förstahandsval" value="" hidden />
<div class="form-group">
  <label for="Förstahandsval">Förstahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>
  <select class="form-control" id="Förstahandsval">
                                            <option value="0">Förstahandsval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>
                                        </select>
</div>

<!-- Val2 -->
<input id="AndrahandsvalHidden" type="text" name="Andrahandsval" value="" hidden />
<div class="form-group">
  <label for="Andrahandsval">Andrahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>

  <select class="form-control" id="Andrahandsval">
                                            <option value="0">Andrahandsval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>>
                                        </select>
</div>

<!-- Val3 -->
<input id="TredjehandsvalHidden" type="text" name="Tredjehandsval" value="" hidden />
<div class="form-group">
  <label for="Tredjehandsval">Förstahandsval:</label>
  <i class="fa fa-info-circle" aria-hidden="true"></i>
  <select class="form-control" id="Tredjehandsval">
                                            <option value="0">Tredjehandval</option>
                                            <option value="1">Måndag - 19:15-20:15</option>
                                            <option value="2">Måndag - 20:15-21:15</option>
                                            <option value="3">Tisdag - 19:15-20:15</option>
                                            <option value="4">Tisdag - 20:15-21:15</option>
                                            <option value="5">Onsdag - 19:15-20:15</option>
                                            <option value="6">Onsdag - 20:15-21:15</option>
                                            <option value="7">Torsdag - 19:15-20:15</option>
                                            <option value="8">Torsdag - 20:15-21:15</option>
                                            <option value="9">Fredag - 19:15-20:15</option>
                                            <option value="10">Fredag - 20:15-21:15</option>
                                            <option value="11">Lördag - 10:00-11:00</option>
                                            <option value="12">Lördag - 11:00-12:00</option>
                                            <option value="13">Söndag - 10:00-11:00</option>
                                            <option value="14">Söndag - 11:00-12:00</option>
                                        </select>
</div>

关于javascript - 禁用 selectlsit 项目未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917022/

相关文章:

MySQL - 嵌入式选择 - 如何将行放入列中?

javascript - 如何动态更改html背景

javascript - 与 Reactjs 语法的混淆

javascript - 选择嵌套 DOM 元素

php - 基于另一个下拉菜单的下拉菜单项

postgresql - 从值可以为空的表中选择

javascript - 在 Django 上下文变量上使用 Javascript 搜索算法

JavaScript 文本区域 : add line break

显示白色背景的 ASP 控件上的 Jquery 单选按钮

c# - IE7中动态JQUERY数据表宽度问题