【问题标题】:javascript execution continues after return false返回 false 后 javascript 继续执行
【发布时间】:2017-09-24 14:23:53
【问题描述】:

我有以下代码来验证密码匹配和电子邮件是否存在 ajax 调用。 返回 false 后代码继续执行。`如果 email id 不存在,则 emailexist 函数返回 0,如果 email id 存在,则返回 1。

在表单提交时

<form action="/home" method="post" onsubmit="return validateform();">

function validateemail(){
        var email_id = $("#email").val();
        if(email_id)
        {
           $.ajax({
          type: 'post',
          url: '/emailexist',
          data: {
           email:email_id,
          },
            success: function (response) {
                      if(response== 1)  
                     {
                       $("#email_status").html("email already exist");
                        return false; 
                     }
                     else if(response == 0){
                     return true;
                }
            }
        });
       }
    function validatepassword()
    {
      var pass = $("#password").val();
     var cofirmpass = $("#confirmpassword").val();
     if(pass != cofirmpass)
      {
        alert("password does not match!");
        return false;
       }
      else{
          return true;
       }
     }
      function validateform()
        {
         if(validatepassword() && validateemail() )
          {
             return true;
           }
         else
           {
             return false;
           }``
           }
      </script>`

【问题讨论】:

  • 请检查preventdefault的功能。
  • 那是因为您正在进行 AJAX 调用。您应该在 blur#email 事件上调用 validateemail
  • @MilanChheda :使用 $("#email").blur(function(). 并使用 d focus() 确保控制回电子邮件字段谢谢。

标签: javascript jquery ajax callback


【解决方案1】:

因为ajaxcall back function

javascript 是一种异步语言,执行是逐行进行的。但是当您将函数作为参数传递时,也称为回调函数,它在返回值来自服务器后执行。

即在ajax方式中,当从服务器接收到数据时,执行成功块。

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2020-04-14
    • 2013-08-25
    • 2022-08-02
    相关资源
    最近更新 更多