2016-02-27 28 views
2

Materalize已經支持輸入字段(如電子郵件)的驗證,但我想驗證輸入字段,例如密碼。基本上這意味着通過javacript添加錯誤或成功標籤。Materalize CSS錯誤標籤

到目前爲止,我的成功一直很差。當我調用change() JS函數並嘗試以addClass('valid')爲例時,沒有任何反應,並且從我所看到的情況來看,該類甚至不會出現在HTML中。我知道這個函數正在工作,因爲如果我添加一個像'test'這樣的無意義類,它會在HTML中顯示。

難道不像添加'valid''invalid'那麼簡單 - 我需要在標籤出現之前符合其他標準嗎?

任何幫助將不勝感激。

回答

0

我的解決方案是包含如下的錯誤標籤:

  <div class="input-field col s9 offset-s1"> 
      <i class="material-icons prefix">perm_identity</i> 
      <input id="register_user" name ="register_user" type="text"> 
      <label id="reg-user-error" style="display:none" for="register_user" data-error="short" data-success="good">Username</label> 
      <label for="register_user">Username</label> 
     </div> 

但要確保在默認情況下隱藏的標籤。然後,我只需要使用javascript修改類並顯示標籤。如果默認情況下不隱藏,任何輸入都會自動驗證標籤。我的JS是:

$('#register_user').on('change',function() 

{

if($('#register_user').val().length > 7) 
{ 
    if($('#register_user').hasClass('invalid')) 
    { 
     $('#register_user').removeClass('invalid'); 
    } 

    $('#register_user').addClass('valid'); 
    $('#reg-user-error').addClass('active'); 
    $('#reg-user-error').show(); 
} 

else if($('#register_user').val().length < 8) 
{ 
    if($('#register_user').hasClass('valid')) 
    { 
     $('#register_user').removeClass('valid'); 
    } 

    $('#register_user').addClass('invalid'); 
    $('#reg-user-error').addClass('active'); 
    $('#reg-user-error').show(); 
} 

});