【问题标题】:jquery validator onfocusout not working for checkbox and radiojquery验证器onfocusout不适用于复选框和收音机
【发布时间】:2013-05-29 09:23:04
【问题描述】:

使用 jquery 验证器。使用选项卡导航表单时不执行验证。

Here's the fiddle

$(function () {
         var validator = $("#myForm").validate({ 
             onfocusout: function(element) {
                   this.element(element);
                },
             rules: { 
                 fname: "required", 
                 check: "required",
                 color: "required"
                }, 
             messages: { 
                 fname: "Enter your firstname", 
                 check: "you know you do",
                 color: "pick one!",
             }, 
         }); 
     });

我尝试在复选框上执行模糊处理。但是,该事件是在表单加载时触发的。 Here's the improved fiddle

$('#check').on('blur', function() {
            $("#myForm").validate().element( this );
        }).blur();

【问题讨论】:

    标签: javascript jquery jquery-validate validation


    【解决方案1】:

    解决 onfocusout 问题的解决方案是对复选框和收音机使用 on blur。

    $(function () {
        var validator = $("#myForm").validate({ 
            onfocusout: function(element) {
                this.element(element);
        },
        rules: { 
            fname: "required", 
            check: "required",
            radio: "required",
            color: "required"
        }, 
        messages: { 
            fname: "Enter your firstname", 
            check: "check your checkbox",
            radio: "check your radio",
            color: "pick one!",
        }, 
        }); 
    
        $('#check').on('blur', function() {
            $("#myForm").validate().element( this );
        });
        $('#radio').on('blur', function() {
            $("#myForm").validate().element( this );
        });
    });
    

    注意不要这样调用模糊函数:

    $('#check').on('blur', function() {
        $("#myForm").validate().element( this );
    }).blur();
    

    初始模糊功能将导致在加载时触发验证

    这是working fiddle

    【讨论】:

      【解决方案2】:

      onfocusout 不显示错误消息,否则验证模糊元素的最佳方法是;

      onfocusout: function(element) { 
          if( $(element).attr('name') ) { 
                  this.element(element);  
          }
      }
      

      【讨论】:

        【解决方案3】:

        检查 onfocusout 选项。

        "Validate elements (except checkboxes/radio buttons) on blur. If nothing is entered, all rules are skipped, except when the field was already marked as invalid."
        

        Validate

        【讨论】:

        • 提交时的验证工作,只有 onfocusout 不适用于复选框或收音机。请参阅关于模糊的更新问题
        • 我想这就是我想说的“ONFOCUSOUT”选项
        猜你喜欢
        • 2012-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        • 2013-11-09
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多