Firefox 4.01 игнорирует все после вызова jQuery "event.preventDefault()" в элементе формы
У меня есть веб-страница, которая динамически генерирует форму HTML через JavaScript и выливает ее в div
с идентификатором jobJSONConfigurationForm
,
Чтобы принять элемент Submit формы (id jobJSONConfigurationFormSubmit
), Я называю submit-div live
функция:
jobJSONConfigurationFormSubmit.live('click', function() {
event.preventDefault();
var jobSummaryJSONTextareaValue = $("#jobSummaryJSONTextarea").val();
var jobSummaryJSONObj = null;
try {
jobSummaryJSONObj = JSON.parse(jobSummaryJSONTextareaValue);
} catch(e) {
alert('This is not a valid JSON string. Please try again with a JSON-formatted string.');
}
updateJobSummaryWithJSONObj(jobSummaryJSONObj);
});
updateJobSummaryWithJSONObj()
Функция обновляет модель данных страницы и представление (другие формы и динамически генерируемый HTML).
Этот код обновляет модель и представление в Chrome 11 и 10, но это не работает в Firefox. Модель данных и представление не обновляются в Firefox 4.01.
Если я добавлю alert('foo')
перед event.preventDefault();
В этом случае Firefox показывает мне диалоговое окно с предупреждением, но не запускает код в остальной части функции.
Если я добавлю alert('foo')
после event.preventDefault();
Кроме того, Firefox не показывает предупреждение и не запускает код в оставшейся части функции.
Что я делаю не так с jQuery под Firefox, что вызывает event.preventDefault()
терпеть неудачу? Спасибо за совет.
3 ответа
event
не определяется автоматически для связанного обработчика. Это первый аргумент. Я думаю, что вы имели в виду:
jobJSONConfigurationFormSubmit.live('click', function(event) {
event.preventDefault();
...
Примечание: я бы также предложил использовать имя, отличное от event
,
Судя по твоему коду, event
не определено Пытаться jobJSONConfigurationFormSubmit.live('click', function(event) {
как первая строка. Надеюсь, это поможет!
Пытаться:
jobJSONConfigurationFormSubmit.live("click", function(evt) {
evt.preventDefault();
}