Materalize CSS错误标签

时间:2016-02-27 23:03:06

标签: javascript jquery materialize

Materalize已经支持对电子邮件等输入字段进行验证,但我想动态验证输入字段,例如密码。基本上这意味着通过javacript添加错误或成功标签。

到目前为止,我的成功很差。当我调用change() JS函数并尝试addClass('valid')时,没有任何反应,从我所看到的,该类甚至没有出现在HTML中。我知道这个函数正在运行,因为如果我添加一个像'test'这样的无意义的类,它会显示在HTML中。

是否不如添加'valid''invalid'那么简单 - 在标签出现之前我是否需要满足其他条件?

非常感谢任何帮助。

1 个答案:

答案 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();
}

});