Materalize已经支持对电子邮件等输入字段进行验证,但我想动态验证输入字段,例如密码。基本上这意味着通过javacript添加错误或成功标签。
到目前为止,我的成功很差。当我调用change()
JS函数并尝试addClass('valid')
时,没有任何反应,从我所看到的,该类甚至没有出现在HTML中。我知道这个函数正在运行,因为如果我添加一个像'test'这样的无意义的类,它会显示在HTML中。
是否不如添加'valid'
或'invalid'
那么简单 - 在标签出现之前我是否需要满足其他条件?
非常感谢任何帮助。
答案 0 :(得分: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();
}
});