javascript - 几个选择 : disable/hide/remove selected option in one select

标签 javascript jquery html css forms

我正在尝试创建一个包含多个选择的表单,用户应该将这些选择从 1 到 8 进行排序。但是,我在隐藏/删除/禁用选择选项时遇到了一些问题。

这是我的表格 这只是要排名的 8 个选择中的前四个

  <label>Spirituality</label>\
 <select id="ranks1" class="form-control form-input" name="answer[]" required>
    <option value="" selected>--</option>
    <?php for ($i=1;$i<=10;$i++){?>
    <option value="<?=$i;?>"><?= $i;?></option>
    <?php } ?>
  </select>
   <label>School</label>
  <select id="ranks1" class="form-control form-input" name="answer[]" required>
    <option value="" selected>--</option>
    <?php for ($i=1;$i<=10;$i++){?>
    <option value="<?=$i;?>"><?= $i;?></option>
    <?php } ?>
  </select>
   <label>Family</label>
  <select id="ranks1" class="form-control form-input" name="answer[]" required>
    <option value="" selected>--</option>
    <?php for ($i=1;$i<=10;$i++){?>
    <option value="<?=$i;?>"><?= $i;?></option>
    <?php } ?>
  </select>
   <label>Friends</label>
  <select id="ranks1" class="form-control form-input" name="answer[]" required>
    <option value="" selected>--</option>
    <?php for ($i=1;$i<=10;$i++){?>
    <option value="<?=$i;?>"><?= $i;?></option>
    <?php } ?>
  </select>

这是我的脚本到目前为止得到的

$(document).ready(function () {
    $("#ranks1").click(function () {
        $('#ranks1 option').prop('disabled', true);
    });
});

我为 CSS 做了这个。对于禁用选项

select option[disabled] {
    display: none !important;
}

有关表单外观的更多背景信息。 More background on what the form looks like.

最佳答案

我认为您需要的是 change 事件,而不是 click 事件。

请考虑以下示例,该示例在更改时禁用所选选项。

HTML:

<select id="selectlist">
  <option value="0">Please select</option>
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
</select>

Javascript:

$('#selectlist').on('change', function() {
    var selectedVal = $(this).find(":selected").val();
  if (selectedVal != 0) {
    // disable selected value
    var selectedOption = $(this).find('option[value=' + selectedVal + ']');
    selectedOption.attr('disabled', 'disabled');
  }
});

JSFiddle:https://jsfiddle.net/tp9urjkb/

关于javascript - 几个选择 : disable/hide/remove selected option in one select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888607/

相关文章:

javascript - jsTree:通过Id获取节点并创建子节点

javascript - 从特定元素之间包含的字符串中剪切出一段文本(jquery/javascript)

javascript - 在 Javascript 中将 10 个循环合并为一个

javascript - 来自未知来源的页面高度

javascript - AngularJs $scope 在 ionic 项目中未定义

javascript - 更改父元素时 CSS 过渡不起作用

javascript - body onload 执行时是否有可能留下未读代码?

html - CSS - 样式化标题/导航

php - 将 php $headers 放在特定联系表单中的何处以更改电子邮件 'From' 地址

Javascript 给出未定义的错误,尽管看起来一切正常