2011-03-01 62 views
0

“提交” 事件在ASP.NET MVC 3,我宣布一个ajax的形式是这样的:Ajax.BeginForm不会引发在IE 7/8

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

和我使用jQuery绑定到“提交”事件(alert只是用于测试):

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

在Chrome和Firefox在Windows上,该事件处理程序被调用,我看到了警报。在IE 7和IE 8中,我没有看到提醒,表单已提交。

如果我改变代码以使用非Ajax的形式,然后调用处理程序在IE中:

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

什么我需要做的就是这个在IE中一个ajax形式的工作?任何帮助,将不胜感激!

回答

0

我结束了使用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,火狐和Chrome。