2010-06-08 2 views
0

J'ai un petit problème ici. J'ai la règle suivante pour un de mes champs:this.optional() dans la méthode de validation jQuery ne semble pas fonctionner

StartDate: { 
    required: isDelayed, 
    dateRU: true 
} 

isDelayed() retourne false, donc je suppose champ StartDate devrait être facultative. Toutefois, si je vérifie à l'intérieur de ma méthode dateRU:

$.validator.addMethod(
    "dateRU", 
    function(value, element) { 
     return this.optional(element) || isValidDate($.trim(value)); 
    }, 
    "Date is incorrect" 
); 

this.optional (élément) renvoie toujours false pour StartDate. Je ne peux pas comprendre ce qui ne va pas. Des idées?

UPD. Est-ce que optional() renvoie true uniquement si l'élément n'est pas requis ET EST VIDE? Parce que c'est peut-être mon problème.

Répondre

1

Ma conjecture serait votre isDelayed fonction ne retourne pas ce que vous attendez, le rendant nécessaire. Je l'ai testé votre code en utilisant cela et il fonctionne:

function isDelayed() { return false; } 

You can see a full working demo here, essayer de voir ce qui est différent dans votre code de la démo, ma meilleure estimation est que la méthode isDelayed(), ou une différence entre votre code réel et affiché.

Questions connexes