J'ai créé une méthode d'ajout d'email (jquery) pour valider plusieurs emails pour la zone de texte du destinataire. ça fonctionne bien quand prototype.js n'est pas déclaré sur la page. Pour se débarrasser du conflit $ j'ai également incorporé la mesure de mesure de la méthode $ noconflict(). Les autres validations de champs fonctionnent dans ce scénario, à l'exception du champ de validation du courrier électronique destinataire. Selon ma conclusion "jQuery.validator.methods.email.call (this, value, element)" ligne n ° 50 de la page ne fonctionne pas et par conséquent la méthode ne tire pas. Je dois aussi appeler le prototype.js. S'il vous plaît voir le code suivant pour une compréhension plus claire ....... Merci d'avance.La méthode de validation multi-mails ne fonctionne pas, si nous appelons le prototype.js sur la page?
S'il vous plaît voir le code ci-dessous: multi Email Validation
var = JQ jQuery.noConflict();
JQ (document) .ready (function() {
// Handler for .ready() called.
JQ("#email-form").validate({
rules : {
email : {
required : true,
email : true
},
recipientEmail : {
multiemail: true,
required : true
// email : true
}
},
messages: {
email: {
required: "Please enter your email address.",
email: "Please enter a valid email address"
},
recipientEmail: {
multiemail: "One or more of your recipient email addresses needs correction.",
required: "Please enter the recipient's email address."
//email: "Please enter a valid email address"
}
}
});
});
JQ.validator.addMethod ("multiemail", la fonction (valeur, élément) { if (this.optional (élément)) // retour true sur l'élément facultatif return true; // var emails = valeur.split (nouvelle valeur RegExp ("\ s *, \ s *", "gi")); var emails = valeur.split (nouvelle valeur RegExp ("\ s *, \ s * », "gi"));
valid = true;
maxEmaillength = emails.length;
for(var i in emails)
{
value = emails[i];
valid = valid && jQuery.validator.methods.email.call(this, value, element);
// Maximum email length validation
if(maxEmaillength > 5)
{
JQ('label.error:first').html("Please enter only 5 mail IDs at a time");
JQ('label.error:first').css(display, block);
setTimeout(alert("Please enter only 5 mail IDs at a time"), 5);
}
}
return valid;
}, 'One or more email addresses are invalid');
</head>
<body>
<form action="" method="get" name="email-form" id="email-form">
<label for="email">email</label>
<input type="text" name="email" id="email" style="width:200px" />
<br />
<label for="recipientEmail">Recipient Email</label>
<input type="text" name="recipientEmail" id="recipientEmail" style="width:500px" /><br />
<input type="submit" name="Submit" id="Submit" value="Submit" />
</form>
</body>
</html>
J'ai testé de mon côté. Ça marche. S'il vous plaît donner votre suggestion d'amélioration le cas échéant. –