我在页面上有一个表单,它接受'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>
我认为我在正确的轨道上,只是不确定如何将它们放在一起。
答案 0 :(得分:0)
首先,如果您不必为数据使用字符串,请不要。您可以像这样使用数组:
$.ajax({
type: "POST",
data: {'id': theid },
哪个更干净,更易于维护。
至于你的问题,你的代码有点不清楚,但你可能应该在submit()事件结束时return false
阻止表单提交,然后在AJAX事件中,如果已提交提交,请执行$('#getid').submit()
。您可能必须设置某种标记(隐藏输入或数据属性),以避免再次检查AJAX触发的提交,从而导致无限循环。
这里有一个注释:404s会导致AJAX处理程序中的error()
回调触发,因此404不会触发您设置的成功回调。