我想捕获所选jquery的更改前事件,因此如果选中的值不是必需的值,它就什么都不做,然后返回到之前选择的选项。有可能吗?
类似
$('.chzn-select').chosen({
'beforeChange': function(){
//if option clicked is Option-3
//do nothing
}
});
答案 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
}
});
})();