6
我想熟悉jQuery驗證自定義方法,似乎有點困惑。爲什麼我的自定義方法中的this.optional(element)總是返回false?jQuery驗證this.optional(元素)總是假
這裏是我的代碼示例:如果元素是不需要的情況下,
<script type="text/javascript">
$(document).ready(function(){
$.validator.addMethod('customemethod', function(val, el){
return this.optional(el) || false;
}, 'custom method says its INVALID !');
$('#myform').validate({ignore: '*[ignore]'});
$('#validate').click(function(){
$('#result').text($('#myform').validate().form());
return false;
});
});
</script>
<form id="myform">
<div><input type="text" id="customfield" name="customfield" /></div>
<script type="text/javascript">
$(document).ready(function(){$('#customfield').rules('add', { required: true, customemethod: true }) });
</script>
<div><input type="text" id="customfield2" name="customfield2" /></div>
<script type="text/javascript">
$(document).ready(function(){$('#customfield2').rules('add', { required: false, customemethod: true }) });
</script>
<div id="result"></div>
<input id="validate" type="submit" />
</form>
,它的值不爲空 - 驗證方法被調用,我需要在這種情況下返回true。 但this.optional致發光(EL)始終爲假:(
我該如何解決呢?我如何檢查是否元素是必需的或內部沒有自定義的方法? 感謝。