2013-05-29 31 views
1

使用jquery驗證器。使用選項卡瀏覽表單時不執行驗證。jquery驗證器onfocusout不工作複選框和收音機

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(); 

回答

4

解決方案/工作圍繞onfocusout在的問題是使用上的模糊兩者選和單選。

$(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

0

檢查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

+0

驗證工作提交,只有onfocusout不適用於複選框或收音機。請參閱關於模糊的更新問題 – user1549804

+0

我認爲這是我想說的「ONFOCUSOUT」選項 –

1

onfocusout不顯示錯誤消息,否則驗證模糊上元素的最佳方式是;

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