【问题标题】:jquery Validation plugin, change class on 'invalid'jquery 验证插件,更改“无效”上的类
【发布时间】:2012-03-31 00:25:23
【问题描述】:

目前我正在使用 http://docs.jquery.com/Plugins/Validation 验证我的表单客户端,目前,我正在使用 success 参数,您可以在验证器中设置,当它成功时,它会添加一个具有某种样式的“已检查”类。但是有没有办法检查用户之后是否以错误的方式更改了输入?是否可以再次将类从“已检查”更改为“错误”?

目前我有:

$.validator.setDefaults({
    submitHandler: function(form) {form.submit();},
    success: function(label) {
        // set   as text for IE
        label.html(" ").addClass("checked");
    }
});

连同整个验证规则等等。

希望任何人都可以提供帮助!非常感谢!

【问题讨论】:

    标签: jquery validation error-handling


    【解决方案1】:

    这应该可以解决问题。对于 yourInputForm,您输入输入字段的描述符,对于 yourValidationRuleAsABooleanExpression 一个布尔表达式,表示您的验证规则。

    $( yourInputForm ).keyup(function() {
    if( yourValidationRuleAsABooleanExpression ) {
         $(this).addClass('checked').removeClass('error');
    } else $(this).removeClass('checked').addClass('error'):
    

    });

    此方法会在用户输入验证规则时检查用户输入的内容,并将添加和删除相应的类。

    希望有所帮助。

    【讨论】:

    • 嗯,我会试试 keinabel!奇怪的是在 jquery 验证插件中没有它的功能
    • @Zerpex,我不知道。之前没有检查插件。我只是尝试了上面的代码,当它工作时,我将我的答案发布给你。不要犹豫,问这是否行不通。
    • 我会尝试搜索,如果它已经包含在插件中,我想会更容易!
    • 你能告诉我你发现了什么吗?
    【解决方案2】:

    您需要更新 showLabel 函数以删除“已检查”类(即添加 .removeClass('checked')

    缩小的js:

    showLabel:function(a,b){var d=this.errorsFor(a);if(d.length){d.removeClass(this.settings.validClass).removeClass('checked')
    

    非缩小 js:

    showLabel: function(element, message) {
            var label = this.errorsFor( element );
            if ( label.length ) {
                // refresh error/success class
                label.removeClass( this.settings.validClass ).removeClass('checked').addClass( this.settings.errorClass );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多