jQuery:需要知道在变更事件中选择/取消选择了哪个选项

jQuery: Need to know which option that has been selected/de-selected on change event

本文关键字:选择 取消 选项 事件 jQuery      更新时间:2023-09-26

我在jQuery中的选择列表有问题。我制作了一个值为"-1"的"全选"选项,当我单击它时,所有选项都标记为已选中。然而,当我想取消选择"全选"选项时,我不知道如何知道我是否真的取消了"全选"-选项。

有人知道我该怎么做吗?

HTML:

<select id="selectlist" name="selectlist" checkedAll="false">
     <option id="all" value="-1">Choose all</option>
     <option value="1" choice="true">Option 1</option>
     <option value="2" choice="true">Option 2</option>
     <option value="3" choice="true">Option 3</option>
</select>

Javascript:

$("#selectlist").live("change", function (event) {
    if ($(this).val() == "-1") {
        var isChecked = $("#selectlist").attr("checkedAll");
        if (isChecked == "false") {
            $("#selectlist").attr("checkedAll", "true");
            $("#selectlist option[choice='true']").each(function () {
                $(this).attr("selected", "selected");
            });
        }
        else {
            $("#selectlist").attr("checkedAll", "false");
            $("#selectlist option[choice='true']").each(function () {
                $(this).removeAttr("selected");
            });
        }
    }
});

我知道这不是上述问题的具体解决方案,但不久前我也遇到了同样的情况。

解决方案是自定义插件:EricHynds的jQueryUIMultiselect

我建议你试一试;)