2009-11-19 4 views
2

Je suis assez nouveau à Jquery, j'utilise la règle de validation contre ma zone de texte. Le problème est quand i marque la zone de texte est obligatoire n l'utilisateur n'entre aucune valeur alors il n'affiche aucun message de validation. J'ai associé un autre message de validation pour la zone de texte à la valeur shu être dans la gamme et qui fonctionne quand l'utilisateur fournit n'importe quelle entrée.Dépendance des dépendances avec Jquery Validate plugin

$.validator.addMethod("requiredRangeFunction", function(value, element) {debugger 
      $.validator.messages["requiredRangeFunction"] = 
    jQuery.format(
     $(element).attr('ErrorMessage') ? $(element).attr('ErrorMessage') : "Please enter the value between {0} and {1}", 
     $(element).attr('MinValue'), 
     $(element).attr('MaxValue') 
    ); 

    return this.optional(element) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue'))))); 
}, "Please enter valid value."); 
question est

avec this.optional (élément) qui retourne mésappariement de dépendance lorsque l'utilisateur ne marche pas fourni d'entrée.

ma zone de texte peut être en option trop donc j'appeler this.optional requiers (élément)

Répondre

3

Le test de (this.optional (element) == true) a fonctionné pour moi.

Donc, dans votre cas, il serait:

return (this.optional(element) == true) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue'))))); 
+3

Cela ne fonctionne pas pour moi, this.optional (élément) renvoie "dépendance-incompatibilité", quelqu'un at-il une solution pour cela?! – jimplode

0

en option signifie que l'utilisateur n'a pas à fournir toute entrée. S'il n'y a pas d'entrée, il n'a pas besoin d'être validé.

+1

ouais je sais que facultatif signifie que l'utilisateur n'a pas besoin de prvoider une entrée mais que je veux valider lorsque l'utilisateur ne fournit aucune entrée et que le contrôle est marqué obligatoire – Punit

0

(En face de la solution de Nav)

return (this.optional(element) != false) || test; 

cela fonctionne pour vous.

0

Vous pouvez remplacer les

return this.optional(element) || <test condition> 

par

var r = $(element).rules(); 
var req=(this.objectLength(r))?r.required:false; 
return !req || <test condition>; 

Peut être que ce sera enouth:

var req=r.required; // true, false or undefined. 

On suppose que non défini est le même que faux pour nos besoins.

Questions connexes