停止jQuery insertAfter多次激发

Stop jQuery insertAfter from firing multiple times

本文关键字:jQuery insertAfter 停止      更新时间:2023-09-26

我正在我的web应用程序中进行一些基本验证,检查密码和确认密码字段的值是否匹配。如果没有,我的代码会在两个字段中添加一个类,并在单击提交按钮时显示错误消息。

$("#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添加的消息。我在这里检查过类似的问题,并试图让它自己发挥作用,但没有运气。

我错过了什么?感谢

执行

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 ");

这将仅在p之前未插入的情况下插入。