2017-08-24 30 views
0

我試圖使用一個名爲jquery validate的庫,它只需要輸入表單並返回成功或錯誤消息。通過實現,我可以使用數據錯誤和數據成功。我無法得到的錯誤工作。我發現它在控制檯中發生了變化,但不在網頁上。直到我點擊一個輸入返回一個輸入,我知道是錯誤的,然後它給了我一個錯誤警告 即使錯誤不是持久性的,當我再次點擊另一個輸入時,它會消失。 我可以通過觀察檢查員看到有效的班級出現在輸入中。 我將發佈以下任何解釋我的代碼,爲什麼出現這種情況,將不勝感激:materialize不能設置數據錯誤

$(document).ready(function() { 
 
    $("#signup_form").validate({ 
 
    rules: { 
 
     first_name: { 
 
     required: true, 
 
     minlength: 2 
 
     }, 
 
     last_name: { 
 
     required: true, 
 
     minlength: 2 
 
     }, 
 
     user_name: { 
 
     required: true, 
 
     maxlength: 3 
 
     } 
 
    }, 
 
    //For custom messages 
 
    messages: { 
 
     first_name: { 
 
     required: "Enter your first name", 
 
     text: true, 
 
     minlength: "Enter at least 2 characters" 
 
     }, 
 
     last_name: { 
 
     required: "Enter your second name", 
 
     text: true, 
 
     minlength: "Enter at least 2 characters" 
 
     }, 
 
     user_name: { 
 
     required: "Enter a username", 
 
     maxlength: "Enter at least 3 characters" 
 
     } 
 
    }, 
 
    errorClass: 'invalid', 
 
    validClass: "valid", 
 
    errorPlacement: function(error, element) { 
 
     $(element) 
 
     .closest("form") 
 
     .find("label[for='" + element.attr("id") + "']") 
 
     .attr('data-error', error.text()); 
 
    } 
 
    }); 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.0/css/materialize.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.0/js/materialize.min.js"></script> 
 

 
<form id="signup_form" class="col s6"> 
 
    <div class="row"> 
 
    <div class="input-field col s6"> 
 
     <input id="user_name" type="text" name="user_name" class="validate"> 
 
     <label for="user_name" data-error="" data-success="">User Name</label> 
 
    </div> 
 
    </div> 
 
</form>

太見錯誤開始輸入點擊過該類型的輸入和背部另一封信其怪異

+0

你的規則沒有意義......你已經設置了'maxlength:3',但是你的消息說「輸入至少3個字符」。 「MAX 3」表示「不超過3」。 – Sparky

+0

它在maxLength上的一個字符串,它並不需要太有道理。最大長度只是一個測試,看看它是否有效。我忘了更改文本我的不好 –

回答

0

只要有人在未來遇到這種情況,我不會把它記下來。仔細檢查你的輸入並刪除班級'驗證'。 我不完全確定,但我認爲會發生的是validate類正在查看輸入和測試的任何標記contstraints即最大,最小,步驟,類型等。這將添加valid類到所有輸入,無論在validate()中設置的規則,因爲它符合標記中的要求。 所以當我們刪除validate類時,驗證庫可以相應地執行。

+0

你能解釋爲什麼這是問題,可以更好地回答這個問題嗎? – Sparky