Интересная проблема - это может быть неочевидно, но причина, по которой событие «предотвращено», заключается в том, что оно никогда не происходит.Это происходит потому, что событие изменения инициируется, когда вы щелкаете за пределами поля, и даже если вы нажимаете кнопку (похоже, что вы нажимаете кнопку), этого никогда не происходит (потому что окно предупреждения блокирует его).
В полях ввода есть значения по умолчанию, которые вы можете использовать на законных основаниях для обновления значения ввода по умолчанию при его изменении.Пример ниже должен решить вашу проблему.
$(function(){
$('#button').bind("click",function(){
if($('#textbox').attr('defaultValue') != $('#textbox').val()) {
alert("button clicked and value changed");
$('#textbox').attr('defaultValue', $('#textbox').val());
} else {
alert("button clicked and value not changed")
};
});
});
В качестве альтернативы, если вам все еще нужно событие изменения, просто не имеет окна предупреждения
<input type="text" id="textbox"/><br/>
<input type="button" id="button"/>
<div id='container'></div>
$(function(){
$('#button').bind("click",function(){
alert("button click");
});
$('#textbox').bind("change",function(){
//alert("text changed");
$('#container').html("changed!");
});
});