【问题标题】:.submit() not working correctly, unbind() helps but comes with a side affect.submit() 无法正常工作,unbind() 有帮助但有副作用
【发布时间】:2011-12-31 14:06:00
【问题描述】:

会保持简短和甜蜜:

  • 设计用于在用户名可用时创建新用户的表单(实际转到确认页面)
  • 如果名称不可用,表单将停止并显示错误消息
  • PHP 工作正常,取名时表单停止,但是当输入有效的用户名时需要点击 2 次提交,第一次点击什么也不做,第二次点击提交表单正常,所以除了必须点击两次

能够立即提交表单的任何帮助都会对我有很大帮助:)

代码按原样工作,除了用户名可用时它不会提交,注释掉的行允许它提交,但如前所述,只有在第二次单击提交按钮后才能提交。

$(document).ready(function()
{

$(".f_create").submit(function()
{ 

    var username = $(".userID").val();

    $.ajax({  
      type: "POST",
      url: "id_check.php",  
      data: "userID="+ username,  
      success: function(response){

        if(response=="NO"){
            $('.l_userID').append('<label class="format" style="color:blue">Nope</label>');   
        }
        else if(response=="YES"){   
            // $(".f_create").unbind();  ..... submits the form but only on second click of submit button
            $(".f_create").submit();

        }

      }

    });

    return false; 

});

});

【问题讨论】:

  • 在这种情况下,同步执行 ajax 调用是有意义的。
  • @AlanWareham 你似乎已经问过这个问题了。不要重复问题。为有用的答案投票,如果答案完全正确,请使用 Accept answer 功能。这将帮助未来的读者更快地找到正确的解决方案。
  • 啊,对了,我很抱歉。谢谢抢。

标签: jquery ajax forms submit


【解决方案1】:

您可以在提交函数中定义一个可选参数。再次手动触发submit方法时,传递一个参数true提交真实表单。

$(".f_create").submit(function(e, explicitSubmit){ 
    if (explicitsubmit) {
         //If the flag is defined, cancel function.
         return; //<-- Return. Form will be "normally" submitted.
    } else {
        // By default, prevent a submission
        e.preventDefault();
    }
    var username = $(".userID").val();

    $.ajax({  
      type: "POST",
      url: "id_check.php",  
      data: "userID="+ username,  
      success: function(response) {
        if (response == "NO") {
            $('.l_userID').append('<label class="format" style="color:blue">Nope</label>');   
        }
        else if (response == "YES") {
            $(".f_create").trigger("submit", [/* explicitSubmit */true]);

        }
      }
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2011-08-24
    • 2015-07-08
    相关资源
    最近更新 更多