protectDefault не работает в IE - PullRequest
       0

protectDefault не работает в IE

3 голосов
/ 10 октября 2010

Я пытаюсь отправить форму с помощью ajax, сама форма загружается с помощью события ajax

Следующий код Jquery работает в FF? Chrome. В IE отправка формы не запрещена

$("#admin_main").delegate("#create_user_form", "submit", function (event) {
    if (event.preventDefault) {
        event.preventDefault();
    } else {
        event.returnValue = false;
    }
    $.post('create_user', $("#create_user_form").serialize(), function (data) {
        $("#admin_main").html(data);
    }, "html");
});

Есть ли обходные пути?

1 Ответ

2 голосов
/ 10 октября 2010

jQuery нормализует это, вы можете надежно позвонить .preventDefault(), например:

$("#admin_main").delegate("#create_user_form", "submit", function (event) {
  event.preventDefault();
  $.post('create_user', $("#create_user_form").serialize(), function (data) {
    $("#admin_main").html(data);
  }, "html");
});

Или, если вы хотите полностью убить событие, return false:

$("#admin_main").delegate("#create_user_form", "submit", function () {
  $.post('create_user', $("#create_user_form").serialize(), function (data) {
    $("#admin_main").html(data);
  }, "html");
  return false;
});

Причина, по которой это не проблема, заключается в том, что вы имеете дело не с объектом события конкретного браузера, а с объектом события jQuery , который имеет нормализованное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...