2010-09-15 81 views
0

我使用jQuery插件的形式通過AJAX來發送自己的狀態。服務器端 PHP腳本處理表單數據,並在以下 格式返回一個JSON字符串:jQuery的形式提交和JSON數據類型的返回

{"error":true,"message":"The username or email already exists. Please try again."} 

這裏的發送形式AJAX:

$('#register_form').ajaxForm({ 
      dataType: 'json', 
      contentType: "application/json; charset=utf-8", 
      success: showResponse 

     }); 
}); 

然後我的html頁面上,我有以下腳本:

<script> 
function showResponse(data){ 

if (data.error == true){ 
    //display the top error div 
    if ($("#registration_error").is(":hidden")) { 
     $("#registration_error").html(data.message); 
     $("#registration_error").slideDown("slow"); 
    } 

} 
else{ 
    alert('registration complete'); 

} 


} 
</script> 

錯誤顯示在我的HTML頁面的註冊表單上方。這 在鉻和Firefox的作​​品。然而,IE瀏覽器正在清除表單,並且只顯示JSON回覆的新頁面,如下所示:

{「error」:true,「message」:「用戶名或電子郵件已存在,請重試。 }

我似乎無法找出原因,IE瀏覽器有這個問題。 請幫忙。

+1

想要在觸發ajaxForm後嘗試在提交按鈕單擊事件上返回false嗎? – 2010-09-15 02:33:11

+0

我試過了,同樣的問題仍然存在。我真的不知道IE是怎麼回事。儘管謝謝你的迴應! – 2010-09-15 03:30:10

回答

1

嘗試從停止提交表單你陳述給ajaxForm

$('#register_form').submit(function(ev){ ev.preventDefault(); }); 

看起來像jQuery的是沒有能夠成功地阻止形式從IE提交之前。反正你用哪個IE?

+0

我使用IE 8,謝謝,我會試試看看會發生什麼。 – 2010-09-16 02:15:31