2015-12-16 77 views
0

我在我的web應用程序中進行了一些基本驗證,它檢查密碼和確認密碼字段的值是否匹配。如果它沒有,當我單擊提交按鈕時,我的代碼會向這兩個字段添加一個類,並顯示錯誤消息。停止jQuery insertAfter從多次發射

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

    if($("#confirmpassword").hasClass('has-error') && $("#password").hasClass('has-error')){ 
     e.preventDefault(); 
    } 

var pass1 = $("#password").val(); 
var pass2 = $("#confirmpassword").val(); 

    if(pass1 != pass2){ 
     $("#password").addClass('has-error'); 
     $("#confirmpassword").addClass('has-error'); 
     $("<p class='errorMsg'>The Password and confirm password fields do not match </p>").insertAfter("#confirmpassword"); 
     return false; 
} 

}); 

問題是如果多次單擊提交按鈕,則使用insertAfter添加的消息被多次添加。我在這裏查了類似的問題,並試圖讓它自己工作,但沒有運氣。

我在想什麼?由於

回答

2

if($("p.errorMsg").length==0) 
    $("<p class='errorMsg'>The Password and confirm password fields do not match </p>").insertAfter("#confirmpassword"); 
else 
    $("p.errorMsg").html(" Any other error if you want to display then set it as HTML "); 

這將插入只有在它之前沒有insterted的p

+0

你是對的:) –

+0

@ Mohamed-Yousef :) – void

+0

@void感謝您的快速回答。 +1。你的解決方案工作,但我得等了一會兒,然後我可以將其標記爲接受 – Unicornese