2017-09-24 103 views
0

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

在表单提交

<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>` 
+0

请检查'preventdefault'功能。 – Unbreakable

+0

这是因为您正在进行AJAX调用。你应该在'#email'的'blur'事件上调用'validateemail'# –

+0

@MilanChheda:使用$(“#email”)。blur(function()。并使用d focus()来确保控制回到email字段谢谢。 – Kishor

回答

0

这是因为ajaxcall back function

javascript是一种异步语言,并且执行逐行执行。但是当你传递一个函数作为参数,也就是所谓的回调函数,它在返回值来自服务器之后执行。

那就是在ajax的时候从服务器收到的数据,执行成功块。