2011-03-01 38 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。