J'ai deux datespickers où l'utilisateur fait une sélection. Ensuite, pour chaque jour dans l'intervalle sélectionné, j'ajoute une zone de saisie. J'ai du mal à faire fonctionner le plugin jQuery Validate pour les zones de texte générées. Il semble que seul le premier est en train d'être validé.jQuery Valider avec les contrôles d'exécution
Lorsque la page est chargée ajouter une méthode de validation personnalisée et mettre en place le formulaire pour valider:
$(document).ready(function() {
$.validator.addMethod("validHoursInDay", function(value, element) {
if (this.optional(element)) {
return this.optional(element);
}
var regex = /\d((\.|,)\d)?/;
var isDecimalNumber = regex.test(value);
if (isDecimalNumber) {
var parsedNumber = parseFloat(value.replace(",", "."))
return parsedNumber >= 0 && parsedNumber <= 24;
}
else {
return false;
}
});
$("#aspnetForm").validate({
debug: true,
onfocusout: false,
submitHandler: function(form) {
submitabscence();
},
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = 'Got some erros for you';
$.each(validator.errorList, function(index, value) {
value.element.style.borderColor = 'red';
});
ShowErrorBox(message);
}
}
});
});
Après avoir créé les zones de texte, je les sélectionner et ajouter les règles
$("#week-overview :input").each(function() {
$(this).rules("add", {
validHoursInDay : true,
required: true,
messages: {
required: "Fill in a number",
validHoursInDay: "Valid Hours in Day"
}
});
});
seulement la première zone de texte semble être validée.
Pourriez-vous coller votre code HTML? – Diego
En outre, où est le deuxième code que vous avez collé? Est-il vraiment exécuté après avoir créé toutes les entrées? Avez-vous essayé d'alerter $ ("# week-overview: input"). Length? – Diego
J'étais capable de le résoudre. Le problème a été résolu en donnant un nom unique à chaque entrée générée! – BennyM