如果使用jquery选择第一个项目,HTML多选择如何取消选择全部

时间:2014-09-28 19:23:58

标签: javascript jquery html

我有一个多选控制,如下所示,enter image description here

当用户选择“任意”时,我想取消选择所有其他选定值并仅选择“任意”,表示如果用户选择“任意”,则不允许选择其他值,否则允许选择其他值。

如何通过jQuery实现它

...谢谢

3 个答案:

答案 0 :(得分:4)

jQuery("#select").change(function() {
    if (jQuery("#select option:first").is(':selected')) {
        jQuery("#select").val("any");
    }
});

到下面的表格:

<select multiple id="select">
    <option value="any">Any</option>
    <option value="...">...</option>
    ...
</select>

答案 1 :(得分:4)

我想你想要这样的东西:

$("select").on("change", function () {
    var selOption = $("option:selected", this).val();
    if (selOption == "any") {
        $(this).attr("selected", false);
        $(this).val("any");
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="select2" multiple="multiple">
    <option value="any">Any</option>
    <option value="12">twelve</option>
    <option value="13">thirette</option>
    <option value="14">fourteen</option>
    <option value="15">fifteen</option>
    <option value="16">sixteen</option>
    <option value="17">seventeen</option>
    <option value="18">eighteen</option>
    <option value="19">nineteen</option>
    <option value="20">twenty</option>
</select>

答案 2 :(得分:1)

在大多数情况下,这应该有效

$('.my-select').val('any')

'any'在哪里是Any选项的值。

(function() {
  var mSelect;

  mSelect = $('select');

  mSelect.on('click', function(event) {
    var values, needReset;
  
    values = mSelect.val();
    needReset = event.target.value === 'any' ||
       (values.length > 1 && values.indexOf('any') !== -1);
  
    if (needReset) {
      mSelect.val('any');
    }
  });
}());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple>
  <option value="any">Any</option>
  <option value="divorced">Maried</option>
  <option value="unmarried">Unmarried</option>
</select>