Ho difficoltà a far funzionare il plugin jQuery Validation come voglio. Si prega di nudo con me dal momento che non sono un esperto jQ :).valid() convalida solo il primo input con il plugin jQuery Validation
Quello che ho è un modulo con più ingressi richiesti, le regole come mostrato di seguito:
$("#makeEvent").validate({
onfocusout: false,
rules: {
name: {
required: true,
minLength: 2,
maxLength: 100
},
host: {
required: true,
minLength: 2,
maxLength: 100
},
startDate: {
required: true,
date: true
},
endDate: {
required: true,
date: true
},
desc: {
required: true,
minLength: 10,
maxLength: 255
},
webpage: {
required: false,
url: true
},
email: {
required: true,
email: true
},
}
});
Ora ho una chiamata .Click personalizzato() dove voglio convalidare il modulo e quindi mostrare un'anteprima per l'utente prima di consentire loro di inviare il modulo. Vedere il seguente funzione:
$('#submitPreview').click(function() {
if($("#makeEvent").valid() === false) {
//What to do if validation fails
} else if($("#makeEvent").valid() === true) {
//Show the preview and let the user either make changes or submit the final result
}
});
Ma ciò che accade è che la funzione convalida solo il primo ingresso (nome) e anche lo convalida in modo errato (norme richiede un minimo di 2 caratteri, ancora convalida con solo 1 carattere inserito. Restituisce solo false se non viene aggiunto alcun carattere).
Forse il mio approccio non è il migliore, quindi sono aperto a qualsiasi suggerimento. Se vuoi dare un'occhiata al codice sorgente disordinato puoi vedere la funzione in azione qui: http://event.gusthlm.se/make.php
Grazie!
indovinate cosa? Questo ha risolto il problema. Non avrei mai immaginato ... Grazie! –
So che questo è vecchio ma ho un problema in cui non posso avere il campo del nome. Sto usando Stripe per convalidare le carte di credito e per mantenere le informazioni sulla carta di credito dal nostro server dobbiamo escludere l'attributo name. Sono anche curioso del perché l'attributo name abbia qualche influenza sulla validazione lato client? – computrius
@computrius, poiché il plugin jQuery Validate richiede un attributo 'name' ... è il modo in cui lo sviluppatore ha deciso che il plug-in dovrebbe tenere traccia degli input. – Sparky