2017-02-10 112 views
-1

The Html:下面是一個簡單的表單,其中包含2個字段的名字和姓氏。表單驗證顯示所有字段的相同錯誤消息

表單驗證

<form action="" method="post"> 
    Firstname : <input type="text" placeholder="first name" class="fname" name="fname" /> 
    <span class="err1"></span><br> 
    Lastname : <input type="text" placeholder="last name" class="lname" name="lname" /> 
    <span class="err2"></span><br> 
    <input type="submit" class="submit_form" value="Submit" /> 
</form> 

jQuery的:

(function(){ 
      $('.submit_form').click(function() {     
        var fail = validate_firstname() 
         fail += validate_lastname(); 

        if(fail == "") { 
         return true; 
        } else {       
         return false; 
        }    
      }); 

      function validate_firstname(){ 
       var fname = $('.fname').val(); 
       if(fname.length == 0) { 
        $('.err1').text("required"); 
       } else if(fname.length < 5) { 
        $('.err1').text("Minimum 5 letter"); 
       } 
      } 

      function validate_lastname(){ 
       var lname = $('.fname').val(); 
       if(lname.length == 0) { 
        $('.err2').text("required"); 
       } else if(lname.length < 5) { 
        $('.err2').text("Minimum 5 letter"); 
       } 
      } 
     })(jQuery); 

現在,當我提交形式沒有輸入字段的任何事情。它顯示必需兩個字段。但如果我離開名字空白並輸入一些文字姓氏說'aaa',然後提交。它再次給出了兩個字段的相同錯誤要求。 但它應該顯示需要爲名和最小5個字母爲姓氏。我如何顯示每個字段的正確錯誤。請幫忙。

回答

5

姓驗證替換下面一行寫錯誤的類名

var lname = $('.lname').val(); 
2

錯字的錯誤 - 你在這兩種情況下使用$('.fname').val()

(function() { 
 
    $('.submit_form').click(function() { 
 
    var fail = validate_firstname() 
 
    fail += validate_lastname(); 
 

 
    if (fail == "") { 
 
     return true; 
 
    } else { 
 
     return false; 
 
    } 
 
    }); 
 

 
    function validate_firstname() { 
 
    var fname = $('.fname').val(); 
 
    if (fname.length == 0) { 
 
     $('.err1').text("required"); 
 
    } else if (fname.length < 5) { 
 
     $('.err1').text("Minimum 5 letter"); 
 
    } 
 
    } 
 

 
    function validate_lastname() { 
 
    var lname = $('.lname').val(); 
 
    if (lname.length == 0) { 
 
     $('.err2').text("required"); 
 
    } else if (lname.length < 5) { 
 
     $('.err2').text("Minimum 5 letter"); 
 
    } 
 
    } 
 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="" method="post"> 
 
    Firstname : 
 
    <input type="text" placeholder="first name" class="fname" name="fname" /> 
 
    <span class="err1"></span> 
 
    <br>Lastname : 
 
    <input type="text" placeholder="last name" class="lname" name="lname" /> 
 
    <span class="err2"></span> 
 
    <br> 
 
    <input type="submit" class="submit_form" value="Submit" /> 
 
</form>

4

你打錯了 請檢查該行並再次更改。

var lname = $('.lname').val(); 
相關問題