2013-04-24 13 views
6

Ho un campo di input che sto cercando di aggiungere la convalida personalizzata a (richiesto in base a un altro campo). Se metto richiesto AND funcCall() posso vedere che vengono restituiti due errori. Se metto solo il funcCall non viene restituito nulla. So che sta entrando nella funzione e nella condizione perché ho fatto un console.log() ma per qualche motivo sembra che abbia bisogno di una regola iniziale per non mostrare l'errore.jquery Validation Engine funcCall non funziona se solo la regola

chiamata:

<input type="text" class="validate[funcCall[validatePassportRequired]]" id="form_register_passport_number" value="" name="passport_number" size="50"> 

Funzione:

function validatePassportRequired(field, rules, i, options) { 
    if ($('#register_for').val()!='Local') { 
    return options.allrules.required.alertText; 
    } 
} 

Così Se cambio Allarme a:

class="validate[required, funcCall[validatePassportRequired]]" 

ottengo due * Questo campo è obbligatorio

Do Devo avere un'altra validazione n regola insieme a funcCall?

risposta

12

basta aggiungere la seguente riga prima di restituire il messaggio di errore e invece di richiesto nel messaggio di ritorno, inserire il nome della funzione prima di .alertText.

rules.push('required'); 

@sunzyflower nel tuo caso la funzione vedrebbe come questo ..

function validatePassportRequired(field, rules, i, options) { 
    if ($('#register_for').val()!='Local') { 
    rules.push('required'); 
    return options.allrules.validatePassportRequired.alertText; 
    } 
} 
+0

grazie mille! In realtà ha iniziato a darmi un doppio messaggio con questo, così ho tirato fuori il reso e ho lasciato solo il rules.push ('richiesto') e questo ha funzionato perfettamente! – sunzyflower

+0

salvatore di vita :) – Andrej

Problemi correlati