2017-08-24 32 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