javascript - ajax 请求每秒返回 10 个响应

标签 javascript jquery ajax return

根据 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/

相关文章:

javascript - Jquery 和 CSS 表现奇怪

javascript - RxJS:我怎样才能使用 event.preventDefault() 来处理掉落事件?

javascript - 基于 mapStateToProps 输出重新渲染 connect()ed 组件

javascript - 获取并设置最高位置

jQuery ui 可排序表格行刷新里面的数字位置

jQuery 获取数据在 IE 中返回未定义

JavaScript:string.match 正则表达式帮助

jquery - Basic Jquery Slider(bjqs) 不适用于一张幻灯片

使用 JSP 和 JAVA 的 jQuery DataTables 服务器端处理

javascript - 用ajax替换anchor