2015-12-15 33 views
-2

我有兩個輸入密碼輸入字段:在AJAX驗證調用JavaScript的

<input class="form-control" type="password" name=password placeholder="Password"/> 

<input class="form-control" type="password" id="button" placeholder="Confirm Password" onblur=";"/> 

我想要的密碼都使用相同的AJAX技術,如果它們沒有顯示錯誤驗證直接在輸入字段的下方,如果不是,我想調用一個將生成密碼哈希的javascript函數(我爲此準備了一個javascript函數,我只需要調用該函數)

這是我到目前爲止有:

$(function() { 
    $("#create_user").click(function(e)) { 
     e.preventDefault(); 
     var password = $("#password-input").val(); 
     var password_confirm = $("#password-confirm-input").val(); 
     if (!password.length || password != password_confirm) { 
     $("#label").html("Passwords do not match"); 
     } 

    } 
    }); 

,這裏是我的HTML代碼部分:

<form id="myform" action="add_user.php" method="POST"> 
     <div class="form-group"> 
      <input class="form-control" type="text" id="username" name="username" placeholder="Username"/> 
     </div> 
     <div class="form-group"> 
      <input class="form-control" type="password" id="password-input" name="password" placeholder="Password"/> 
     </div> 
     <div class="form-group"> 
      <input class="form-control" type="password" id="password-confirm-input" placeholder="Confirm Password" onblur=";"/> 
     </div> 
     <div class="form-group"> 
      <input class="form-control" type="text" placeholder="User Type"/> 
     </div> 
     <div class="form-group" id="msg"> 
      <input class="form-control" type="text" name=email placeholder="E-mail Address"/> 
      <label id="label" for="male">Male</label> 
     </div> 
     <br> 
     <div class="form-group pull-right"> 
      <input class="btn btn-success" id="create_user" value="Create User"/> 
      <input class="btn btn-success" type="submit" id="create_user2" value="Create User"/> 
     </div> 

這個代碼

+0

請提供任何正在發生的錯誤。 (F12)。如果沒有錯誤,請通過代碼查看它停止的位置。 –

回答

2

我不知道爲什麼你需要AJAX比較不驗證。密碼。你可以用javascript來做到這一點。

假設passwordpassword2是文本框的Id值,而save是該按鈕的Id值,單擊它將觸發比較。

$(function(){ 

    $("#save").click(function(e){ 
    e.preventDefault(); 
    var p1=$("#password").val(); 
    var p2=$("#password2").val(); 
    $("#msg").html(""); 
    if(p1!==p2) 
    { 
     $("#msg").html("Passwords do not match"); 
    }  
    });  

}); 

Here是一個工作示例。


編輯:按OP

您的驗證器不點火的原因的評論是因爲2個問題。

1)jQuery的點擊事件登記到ID爲create_user#create_user)的元素,但在你的HTML標記您的按鈕的id是create_user2

2)您在這裏有一個語法錯誤。您正在關閉該功能(在e之後),您不應該這樣做。

$("#create_user").click(function(e)) { 

因此,解決方案是糾正您的js代碼,以使用正確的按鈕id並修復語法錯誤。

$(function(){  

    $("#create_user2").click(function(e) { 

     e.preventDefault(); 
     var password = $("#password-input").val(); 
     var password_confirm = $("#password-confirm-input").val(); 

     $("#label").html(""); 
     if (!password.length || password != password_confirm) { 
     $("#label").html("Passwords do not match"); 
     } 

    });  

}); 

Here是一個工作示例。

+1

@AdelAhmed您的代碼有語法錯誤。看到我更新的答案。 – Shyju

+0

是的它的工作,但我現在無法sumbit :( 任何修補程序? –

+1

在驗證完成後調用'$(「#YourFormId」)。submit()' – Shyju