Ajax.BeginForm не вызывает событие "submit" в IE 7/8 - PullRequest
0 голосов
/ 01 марта 2011

В ASP.NET MVC 3 я объявил форму ajax, подобную этой:

@using (Ajax.BeginForm("SaveRegistrationConfirmationRequest", null, new AjaxOptions { UpdateTargetId = "verify-email-result", HttpMethod = "Post" }, new { id = "request-form" }))

, и я использую jQuery для привязки к событию submit (alert простодля тестирования):

$("#request-form").submit(function () {
    alert("submit");
    if (!$("#agree-checkbox").is(":checked")) {
        $("#agree-dialog").dialog("open");
        return false;
    }
});

В Chrome и Firefox в Windows вызывается обработчик событий, и я вижу предупреждение.В IE 7 и 8 я не вижу предупреждения, и форма отправляется.

Если я изменяю код для использования не-AJAX-формы, то в IE вызывается обработчик:

@using (Html.BeginForm("SaveRegistrationConfirmationRequest", "Account", FormMethod.Post, new { id = "request-form" }))

Что мне нужно сделать, чтобы это работало с формой ajax в IE?Любая помощь будет оценена!

1 Ответ

0 голосов
/ 02 марта 2011

В итоге я использовал событие ajaxSend :

$("#request-form").ajaxSend(function (evt, request, settings) {
    if (!$("#agree-checkbox").is(":checked")) {
        request.abort();
        $("#agree-validation").addClass("field-validation-error");
        $("#agree-validation").removeClass("field-validation-valid");

    }
});

Это работает в IE 7 и 8, Firefox и Chrome.

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