jQuery Multi Select Option - 检查是否选择了某个选项

时间:2014-12-02 04:42:43

标签: javascript jquery html html5 jquery-selectors

我有一个HTML Multi选择框

<form action="form_action.php" method="Post">
<select name="cars[]" multiple id="select_id">
    <option value="all" id="option_id">All</option>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="opel">Opel</option>
    <option value="audi">Audi</option>
</select>
<input type="submit">
</form>

我要做的是检查jQuery中是否选择了“All”选项。

我试过的是

<script>
        $(document).ready(function()
        {
            $('#option_id')
                .click(
                    function()
                    {
                        if ($("#select_id option[value='all']").length == 0) { //value does not exist so add
                            //Do something if not selected
                        }
                        else
                        {
                            //DO something if selected
                        }
                        //$("#select_id option:selected").removeAttr("selected");           //Remove
                        //$("#select_id option").attr('selected', 'selected');      //Add
                    }
                );
        });
    </script>

但它没有用。

有人可以帮我吗?

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:14)

请按以下代码执行

$('#option_id').click(function(){
if ($("#select_id option[value=all]:selected").length > 0){
    alert('all is selected');
}
else{
    //DO something if not selected
}
//$("#select_id option:selected").removeAttr("selected");           //Remove
//$("#select_id option").attr('selected', 'selected');      //Add
});

您可以查看以下小提琴

Multi Select

答案 1 :(得分:5)

您可以使用:selected选项卡来确定是否已选择

if ($("#select_id option[value=all]:selected").length > 0){
   //all is selected
}

答案 2 :(得分:1)

从我所看到的情况来看,当您更改<select>框中的选项时,您是否尝试检测是否已选中该对象,对吧?

试试这个:

$("#select_id").change(function () {
  if ($(this).find("option:selected").val() == "all") {
    // all is selected
  } else {
    // all isn't selected
  }
});