Ich versuche, mit jQuery Validierung benutzerdefinierte Methoden vertraut zu machen und scheint ein wenig verwirrt zu werden. Warum gibt this.optional (element) in meiner benutzerdefinierten Methode immer false zurück?jQuery Validierung this.optional (Element) immer falsch
hier ist ein Beispiel für meinen Code:
<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>
im Fall, wenn das Element nicht erforderlich ist, und es ist Wert nicht leer ist - Validierungsmethode aufgerufen wird, und ich muß in diesem Fall wahr zurückzukehren. Aber this.optional (el) ist immer falsch :(
Wie kann ich sie lösen? Wie kann ich überprüfen, ob Element erforderlich ist oder nicht innerhalb benutzerdefinierte Methode? Dank.