2013-09-18 5 views
0

Я хочу захватить событие перед изменением jquery, поэтому, если выбранное значение выбрано не является обязательным, оно просто ничего не делает и возвращается к предыдущей выбранной опции. Является ли это возможным?jquery, выбранный до события изменения

что-то вроде

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

    } 
}); 

ответ

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

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

Смежные вопросы