2011-01-20 1 views
6

Ho cercato lo stack overflow e non riesco a trovare una risposta alla mia domanda.plug-in di validazione jquery di bassistance - disallineamento di dipendenza

Sto usando bassistance jquery validation plugin e funziona bene tutti tranne una sezione particolare, metodi personalizzati.

I metodi stanno funzionando è proprio quella chiamata $ ('selettore'). Valid() mi sta dicendo che l'elemento non è valido, anche se dovrebbe essere valido.

Ciò è dovuto al ritorno della dipendenza (non corrispondente) della proprietà this.optional (elemento).

La mia domanda è:

Cosa dipendenza-disadattamento significa quando si controlla per facoltativo su un elemento?

La dipendenza significa che è facoltativo, ma ha altre dipendenze?

Quindi il mio metodo personalizzato dovrebbe controllare il campo facoltativo per "dipendenza non corrispondente" ??

Non sono chiaro cosa si supponga di restituire e perché.

nel caso in cui il mio metodo personalizzato restituisca anche la mancata corrispondenza delle dipendenze? o dovrei affrontarlo ??

Questo è il mio metodo personalizzato:

$.validator.addMethod(
     "ukphonenumber", 
     function (value, element, validate) { 

      if (validate) { 
       var regexp = "\\s*\\(?((\\+0?44)?\\)?[ \\-]?(\\(0\\))|0)((20[7,8]{1}\\)?[ \-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{4})|([1-8]{1}[0-9]{3}\\)?[ \\-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{3}))\\s*"; 
       var re = new RegExp(regexp); 
       return this.optional(element) || re.test(value); 
      } 
      else { 
       return true; 
      } 
     }, 
     "Please check your input." 
    ); 

E questo aggiungendo la regola per il mio ingresso:

$("#<%=txtTelephoneNumber.ID %>").rules("add", { 
      required: false, 
      ukphonenumber: true, 
      messages: { 
       required: "Please enter your telephone number", 
       ukphonenumber: "Your telephone number is invalid" 
      } 
     }); 

risposta

1

Ho anche contattato lo sviluppatore della biblioteca e ho ottenuto questa risposta: che ha risolto il problema .

c'è qualche motivo per usare richiesto: falso invece di richiesto: vero? Se il campo non è richiesto, non applicare la regola richiesta anziché impostarla su false.

Si potrebbe anche provare e lasciare la chiamata a this.optional (elemento) all'interno del metodo personalizzato.

saluti Jörn

-1

questo funziona:

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

Dependency mismatch with Jquery Validate plugin

+0

No non è così !! Leggi la mia risposta, questa è la soluzione. Questo o modifica della libreria per non restituire la mancata corrispondenza delle dipendenze per gli elementi richiesti. – jimplode