停止jQuery insertAfter多次触发

时间:2015-12-16 18:49:57

标签: javascript jquery

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

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

我缺少什么?感谢

1 个答案:

答案 0 :(得分: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 ");

只有先前没有插入p,才会插入IMultiValueConverter