2017-02-25 129 views
0

我的验证错误消息didnot显示不正确。例如,我在名称输入上插入值,但显示了电子邮件验证错误消息,或者当我在电话输入中插入值时,验证电子邮件为显示。我希望当我在特定输入中插入值时,只显示它的验证错误消息。验证错误消息未正确显示相关输入

<form class="contactForm" onsubmit="return validateContactForm();"> 
           <div class="form-group"> 
            <label for="name" class="label-login">Name</label> 
            <input type="text" class="form-control" id="name" autocomplete="off" /> 
            <span id="namespan" class="text-danger"></span> 
            <i class="fa fa-user"></i> 
           </div> 
           <div class="form-group"> 
            <label for="email" class="label-login">email</label> 
            <input type="email" class="form-control" id="email" autocomplete="off" /> 
            <span id="emailspan" class="text-danger"></span> 
            <i class="fa fa-envelope"></i> 
           </div> 
           <div class="form-group"> 
            <label for="phone" class="label-login">tell number </label> 
            <input type="text" class="form-control" id="phone" autocomplete="off" /> 
            <span id="tellspan" class="text-danger"></span> 
            <i class="fa fa-phone"></i> 
           </div> 
           <div class="form-group"> 
            <label for="message" class="label-login label-message">message</label> 
            <textarea class="form-control" rows="3" id="message" autocomplete="off"></textarea> 
            <span id="messagespan" class="text-danger"></span> 
           </div> 
           <div class="form-group"> 
            <input type="submit" class="btn btn-send center-block" value="send/> 
           </div> 
          </form> 
       $(document).ready(function() {    
      $(".contactForm input,.contactForm textarea").each(function() { 
       $(this).keyup(function() { 
      var pt = /^[\w.][email protected][a-z0-9-]+\.[a-z]{2,6}/i; 

      if (!pt.test($("#email").val())) {  
       $("#emailspan").html("insert email correctly"); 
      } 
      else { 
       $("#emailspan").text(""); 

      } 
      if ($("#name").val().length < 3) { 
       $("#namespan").html("insert name correctly"); 
      } 
      else { 
       $("#namespan").text(""); 
      } 
      if ($("#phone").val().length < 12) { 
       $("#tellspan").html("insert phone correctly"); 
      } 
      else { 
       $("#tellspan").text(""); 
      } 
      if ($("#message").val().trim().length < 3) { 
       $("#messagespan").html("insert message correctly"); 
      } 
      else { 
       $("#messagespan").text(""); 
      } 
     }); 
    }); 
}); 
    function validateContactForm() { 
    var bool = true; 
    var pt = /^[\w.][email protected][a-z0-9-]+\.[a-z]{2,6}/i; 
    if (!pt.test($("#email").val())) { 
     bool = false; 
     $("#emailspan").html("insert email correctly"); 
    } 

    if ($("#name").val().length < 3) { 
     bool = false; 
     $("#namespan").html("insert name correctly"); 
    } 
    if ($("#phone").val().length < 12) { 
     bool = false; 
     $("#tellspan").html("insert tell correctly"); 
    } 
    if ($("#message").val().trim().length < 3) { 
     bool = false; 
     $("#messageSpan").html("insert message correctly"); 
    } 

    return bool; 
} 

回答

0

我发现在形式的一些问题,在这里更新

形式发送按钮无法正常关闭

.contactFormnot不是表单标签添加

$(document).ready(function() { 
 
\t $(".contactForm input,.contactForm textarea").each(function() { 
 
\t \t $(this).keyup(function() { 
 
\t \t \t var pt = /^[\w.][email protected][a-z0-9-]+\.[a-z]{2,6}/i; 
 
\t \t \t if (!pt.test($("#email").val())) { 
 
\t \t \t \t $("#emailspan").html("insert email correctly"); 
 
\t \t \t } else { 
 
\t \t \t \t $("#emailspan").text(""); 
 
\t \t \t } 
 
\t \t \t if ($("#name").val().length < 3) { 
 
\t \t \t \t $("#namespan").html("insert name correctly"); 
 
\t \t \t } else { 
 
\t \t \t \t $("#namespan").text(""); 
 
\t \t \t } 
 
\t \t \t if ($("#phone").val().length < 12) { 
 
\t \t \t \t $("#tellspan").html("insert phone correctly"); 
 
\t \t \t } else { 
 
\t \t \t \t $("#tellspan").text(""); 
 
\t \t \t } 
 
\t \t \t if ($("#message").val().trim().length < 3) { 
 
\t \t \t \t $("#messagespan").html("insert message correctly"); 
 
\t \t \t } else { 
 
\t \t \t \t $("#messagespan").text(""); 
 
\t \t \t } 
 
\t \t }); 
 
\t }); 
 
}); 
 
function validateContactForm() { 
 
\t var bool = true; 
 
\t var pt = /^[\w.][email protected][a-z0-9-]+\.[a-z]{2,6}/i; 
 
\t if (!pt.test($("#email").val())) { 
 
\t \t bool = false; 
 
\t \t $("#emailspan").html("insert email correctly"); 
 
\t } 
 
\t if ($("#name").val().length < 3) { 
 
\t \t bool = false; 
 
\t \t $("#namespan").html("insert name correctly"); 
 
\t } 
 
\t if ($("#phone").val().length < 12) { 
 
\t \t bool = false; 
 
\t \t $("#tellspan").html("insert tell correctly"); 
 
\t } 
 
\t if ($("#message").val().trim().length < 3) { 
 
\t \t bool = false; 
 
\t \t $("#messageSpan").html("insert message correctly"); 
 
\t } 
 
\t return bool; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form class="contactForm" onsubmit="return validateContactForm();"> 
 
           <div class="form-group"> 
 
            <label for="name" class="label-login">Name</label> 
 
            <input type="text" class="form-control" id="name" autocomplete="off" /> 
 
            <span id="namespan" class="text-danger"></span> 
 
            <i class="fa fa-user"></i> 
 
           </div> 
 
           <div class="form-group"> 
 
            <label for="email" class="label-login">email</label> 
 
            <input type="email" class="form-control" id="email" autocomplete="off" /> 
 
            <span id="emailspan" class="text-danger"></span> 
 
            <i class="fa fa-envelope"></i> 
 
           </div> 
 
           <div class="form-group"> 
 
            <label for="phone" class="label-login">tell number </label> 
 
            <input type="text" class="form-control" id="phone" autocomplete="off" /> 
 
            <span id="tellspan" class="text-danger"></span> 
 
            <i class="fa fa-phone"></i> 
 
           </div> 
 
           <div class="form-group"> 
 
            <label for="message" class="label-login label-message">message</label> 
 
            <textarea class="form-control" rows="3" id="message" autocomplete="off"></textarea> 
 
            <span id="messagespan" class="text-danger"></span> 
 
           </div> 
 
           <div class="form-group"> 
 
            <input type="submit" class="btn btn-send center-block" value="send" /> 
 
           </div> 
 
          </form>

0

你总是m一起验证验证。因此,无论何时在任何字段上进行密钥设置,都会发生所有验证。 为了避免这种情况,您可以至少采用两种方法。

路1

可检查触发事件的元素的ID和验证只有现场逻辑。您将获得一个独特的功能,为每个字段验证添加一个if(

Ex。

 $(".contactForm input,.contactForm textarea").each(function() { 
      $(this).keyup(function() { 
     var pt = /^[\w.][email protected][a-z0-9-]+\.[a-z]{2,6}/i; 
     var id=$(this).attr("id"); 

     if(id==="email"){ 
     if (!pt.test($("#email").val())) {  
      $("#emailspan").html("insert email correctly"); 
      } 
      else { 
      $("#emailspan").text(""); 
     } 
     } 
     ... 

等每个领域..

路2

或者您可以拨打和处理功能,为每个特定的领域,消除$(".contactForm input,.contactForm textarea").each(function() {

Ex。

$("#name").keyup(function() { 
    if ($(this).val().length < 3) { 
      $("#namespan").html("insert name correctly"); 
     } 
     else { 
      $("#namespan").text(""); 
     } 
}); 
..... 

等为每个字段