Forse non mi sono spiegato bene.
Vorrei capire come implementare all'interno del plugin jquery validation un controllo su 2 campi.
Supponendo che io abbia uno script di validazione come quello sotto riportato, come faccio a rilevare ed avvisare l'utente ( alla perdita del focus del campo ) che il dato nel campo inserito deve essere maggiore del campo precedente ? Nel mio caso le 2 date ?
Come puoi notare lo script verifica la congruenza delle password, se l'utente non inserisce correttamente la password di verifica, alla perdita del focus il plugin visualizza il msg di errore,
codice:
confirm_password: {
required: true,
minlength: 5,
equalTo: "#password"
},
senza che l'utente sia costretto a completare il form e cliccare sul submit,
e questo grazie ad ajax, il mio intento era proprio questo.
mi puoi aiutare ?
codice:
<script type="text/javascript">
$.validator.setDefaults({
submitHandler: function() { alert("submitted!"); }
});
$().ready(function() {
// validate the comment form when it is submitted
$("#commentForm").validate();
// validate signup form on keyup and submit
$("#signupForm").validate({
rules: {
firstname: "required",
lastname: "required",
username: {
required: true,
minlength: 2
},
password: {
required: true,
minlength: 5
},
confirm_password: {
required: true,
minlength: 5,
equalTo: "#password"
},
email: {
required: true,
email: true
},
topic: {
required: "#newsletter:checked",
minlength: 2
},
agree: "required"
},
messages: {
firstname: "Please enter your firstname",
lastname: "Please enter your lastname",
username: {
required: "Please enter a username",
minlength: "Your username must consist of at least 2 characters"
},
password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long"
},
confirm_password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long",
equalTo: "Please enter the same password as above"
},
email: "Please enter a valid email address",
agree: "Please accept our policy"
}
});
// propose username by combining first- and lastname
$("#username").focus(function() {
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
if(firstname && lastname && !this.value) {
this.value = firstname + "." + lastname;
}
});
//code to hide topic selection, disable for demo
var newsletter = $("#newsletter");
// newsletter topics are optional, hide at first
var inital = newsletter.is(":checked");
var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
var topicInputs = topics.find("input").attr("disabled", !inital);
// show when newsletter is checked
newsletter.click(function() {
topics[this.checked ? "removeClass" : "addClass"]("gray");
topicInputs.attr("disabled", !this.checked);
});
});
</script>