2013-07-12 76 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不会触发您设置的成功回调。