De knock-out de la validation de la vérification des erreurs
J'ai un coup de formulaire qui est composé de 2 parties. Lorsque la première partie est remplie, la seconde partie est cachée. À la fin de la première partie et en cliquant sur "Continuer", la première partie est alors caché et la deuxième partie est montré. Je veux être en mesure de valider la première série d'entrées, et si il n'y a pas des erreurs, puis continuer à la prochaine partie.
J'ai trouvé cette sur la page github qui je c'est ce que j'essaie de faire.
Quand je le fais aucune erreur n'est détectée. Il continue à la deuxième partie
function ReserveViewModel(){
self.firstName = ko.observable("").extend({ required: true });
self.continue = function(){
var errors = ko.validation.group([ReserveViewModel.firstName]);
if (errors.length == 0) {
//display second div
}
else{
self.errors.showAllMessages();
}
}
}
Cependant, si je fais cela, il fonctionne, mais essaie de valider le tout. Depuis le deuxième ensemble de données sont vides, il se contente d'être là.
self.continue = function(){
self.errors = ko.validation.group(self);
if (self.errors().length == 0) {
}
else{
self.errors.showAllMessages();
}
}
- Donc, si vous le faites de la première manière, il fonctionne comme vous l'intention qu'il - pourquoi voudriez-vous utiliser la deuxième façon? Pourquoi ne pas simplement utiliser deux modèles de vue et ont deux groupes de règles de validation?
- Je ne suis pas sûr que je comprends ce que tu veux. Soit je n'obtenez pas de validation ou de validation avec ce que j'ai indiqué. Je suppose que j'ai pu créer deux modèles de vue, je n'ai jamais pensé de cette façon. Peu importe, je suis encore confus quant à pourquoi je ne peux pas obtenir mon exemple au travail, lorsqu'il est indiqué dans la documentation.
- Quand j'ai lu votre question, il n'était pas encore clair pour moi pourquoi le premier ne fonctionnait pas.
Vous devez vous connecter pour publier un commentaire.
Il y a quelques raisons fondamentales que votre code ne fonctionne pas. Dans le premier exemple, vous êtes déjà dans le cadre de votre modèle d'affichage de sorte que vous n'avez pas besoin d'utiliser ReserveViewModel.prénom, et dans le deuxième vous dites à tout vérifier à l'intérieur de son " soi " qui est-à-dire tout vérifier à l'intérieur de moi pour la validation. Il y a deux façons de moyens faciles pour la peau ce chat (comme je le vois, le fait d'avoir brièvement travaillé avec un KO.La Validation) -
Profond de validation -
Valider toutes les propriétés de la personne, et c'est 'enfant' propriétés pour assurer la validation.
L'exemple suivant serait tout simplement de créer un tableau d'objets de vérifier les contre -
Cela vous permettra de 'chunk' votre observables dans des tableaux à tester. Ce serait probablement plus facile que d'essayer de créer des modèles de vue.