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();
}
Другие вопросы по тегам