根据 ajax 返回的内容(1 或 0),我希望是否处理提交操作:
$(document).ready(function(){
$("#submit").submit(function(e){
e.preventDefault();
var username = $("#username").val();
if(username){
$.ajax({
url: 'checkinput.php',
data: {data: JSON.stringify(username)},
type: 'POST',
dataType: "json",
success: function (data) {
if(data.result == 0) {
alertify.log( data.error ); // diplay error
}
if(data.result == 1) {
$("#submit").submit(); // process submit-action => send data to php etc..
}
}
});
} else {
alertify.log( "forgotten something" );
}
});
});
如果 php 脚本返回的结果是 0,则显示错误消息并且页面不会刷新(很棒)<= 应该是这样的。
如果 Ajax 返回 1,我希望处理提交操作,以便可以将数据发送到 php。 但会发生什么:
Ajax 每秒发送 10 个响应(可能是因为我在 if 子句中调用的函数?) 如果返回的结果是1,我希望处理submit-action。 怎么解决这个问题?
最佳答案
由于 $("#submit").submit()
触发了提交事件
,因此出现了无限循环。相反,您想要的是提交表单而不触发事件。幸运的是,这仅意味着在代码中添加 3 个字符,[0]
。
$("#submit")[0].submit();
关于javascript - ajax 请求每秒返回 10 个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549709/