0

我想捕获所选 jquery 的更改前事件,因此如果单击的值不是必需的,则它什么也不做并返回上一个选择的选项。可能吗?

就像是

$('.chzn-select').chosen({
    'beforeChange': function(){
        //if option clicked is Option-3
        //do nothing

    }
});
4

2 回答 2

6

借助数据jQuery 函数、change事件和params.selected参数,您可以轻松实现这一目标。

$(".chzn-select").chosen().on("change", function (evt, params) {
    if (params.selected === "Portugal") {
        var previous = $(this).data("previous") || "";
        $(this).val(previous).trigger("chosen:updated");
    } else {
        $(this).data("previous", params.selected);
    }
});

看到这个工作演示

于 2013-09-18T10:42:51.680 回答
1

像这样的东西

(function () {
    var previous;    
    $(".chzn-select").focus(
        function () {
    // Store the current value on focus and on change
        previous = $(this).val();
    }).change(function() {
        if($(this).val()=="Option-3"){// //if option clicked is Option-3
            $(this).val(previous); // select the value prior to the change
            $(this).trigger("chosen:updated"); // tell chosen to pick up the updated value      
        }
    });
})();

我的想法来自:Getting value of select (dropdown) before change

于 2013-09-18T10:03:25.660 回答