0

有没有办法限制用户可以在多选 html 字段中选择的选项数量,如下所示?

<select multiple id="color" name="color" size=5>
<option>- Choose one -</option>
<option value="blu">Blue</option>
<option value="yel">Yellow</option>
<option value="bla">Black</option>
<option value="ora">Orange</option>
</select>

假设我想“强制”用户在四个选项中选择两个。我该怎么做?

4

3 回答 3

1

可能重复?HTML 多选限制

如果要选择多个选项,则需要一个数组来处理结果,因此将名称更改为 color[]

<select multiple id="color" name="color[]" size=5>
<option>- Choose one -</option>
<option value="blu">Blue</option>
<option value="yel">Yellow</option>
<option value="bla">Black</option>
<option value="ora">Orange</option>
</select>

但是,对于您的真正问题,我目前没有更多信息

编辑

来自: HTML 多选限制的答案 是:

你可以使用 jQuery

$("select").change(function () {
      if($("select option:selected").length > 3) {
          //your code here
      }
  });

提交人:infinity

于 2014-04-30T16:02:47.300 回答
1

这可以通过 jQuery 轻松实现:

// Your jQuery which will limit the max selected to 2
$( document ).ready(function() {
    $(".color option").click(function(e){
        if ($(this).parent().val().length > 2) {
            $(this).removeAttr("selected");
        }
    });
});

<!-- Your HTML //-->
<select multiple id="color" name="color[]" class="color" size="5">
    <option>- Choose one -</option>
    <option value="blu">Blue</option>
    <option value="yel">Yellow</option>
    <option value="bla">Black</option>
    <option value="ora">Orange</option>
</select>
于 2014-04-30T16:14:25.643 回答
1

如果有超过所需的数量,请对它们进行计数

小提琴:http: //jsfiddle.net/6kMWu/

$('#color > option').on('click', function (e) {
    var selected = ($('#color > option:selected').length);
    console.log(e.target);
    if(selected > 2)
    {
        $(e.target).removeAttr('selected');
        return false;
        e.preventDefault();
    }
});
于 2014-04-30T16:09:56.210 回答