2013-07-12 74 views
0

我有一個頁面上的表單接受'ID',用戶輸入ID例如; 1026

表單提交到同一頁面ajax抓取該ID與其他網站進行覈對。如果響應不是404錯誤並且$ _GET爲真,我需要能夠讓表單發佈。

繼承人我有什麼

<script> 
$(document).ready(function(){ 
$('form#getid').submit(function(){ 
    var theid = $('input#id').val(); 
    var dataString = "id=" + theid; 
    $.ajax({ 
      type: "POST", 
      data: dataString, 
    success: function(response, status, xhr){ 
    if(status=="success") { 
     $("#err-404").html(response); 
    } 
    else { alert(status+ ' - '+ xhr.status); } 
    } 
} 
     }); 

    }); 

return false; 
}); 
</script> 

我的形式

<form id="getid" action=""> 
    <input type="text" name="id" /> 
    <input type="submit" class="button" value="Go"> 
<div class="error" id="err-404"></div> 

我認爲正確的軌道上IM,只是不知道如何把它放在一起。

回答

0

首先,如果您不必爲數據使用字符串,則不要。你可以像這樣使用一個數組:

$.ajax({ 
     type: "POST", 
     data: {'id': theid }, 

這是更清潔,更易於維護。

至於你的問題,你的代碼有點不清楚,但你可能應該在submit()事件結束時做return false以防止表單提交,然後在AJAX事件中,如果它被清除提交,請執行$('#getid').submit()。您可能需要設置某種標記(隱藏的輸入或數據屬性),以避免AJAX觸發的提交再次檢查,導致無限循環。

這裏需要注意:404s應該會導致AJAX處理程序中的error()回調觸發,因此404不會觸發您設置的成功回調。