2017-09-24 101 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的時候從服務器收到的數據,執行成功塊。