更改事件之前选择的jquery

时间:2013-09-18 09:43:03

标签: jquery jquery-chosen

我想捕获所选jquery的更改前事件,因此如果选中的值不是必需的值,它就什么都不做,然后返回到之前选择的选项。有可能吗?

类似

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

    }
});

2 个答案:

答案 0 :(得分:6)

借助data 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);
    }
});

<强> See this working demo

答案 1 :(得分: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