J'ai asp.net mvc3 projet où je fais une édition en bloc sur une table avec une liaison knock-out. Je souhaite effectuer des validations telles que les validations requises et les validations numériques tout en sauvegardant les données. Y at-il un moyen plus facile de faire des validations inactives. PS: je n'utilise pas de formulaires.
Réponses
Trop de publicités?Jetez un oeil à:
https://github.com/ericmbarnard/Knockout-Validation
Ce proprement les configurations et les utilise à ce qui est décrit dans le knock-out de la documentation sur: http://knockoutjs.com/documentation/extenders.html en vertu de l': en Direct de l'Exemple 1: Forçage de l'entrée pour être numérique
Vous pouvez voir en direct au: http://jsfiddle.net/KHFn8/3238/
Mise à JOUR: le violon a été mis à jour pour utiliser les dernières KO 2.0.3 et ko.validation de la version 1.0.2 à l'aide de la cloudfare CDN url
Pour l'installation de ko.validation:
ko.validation.rules.pattern.message = 'Invalid.';
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
Pour configurer les règles de validation, l'utilisation des extensions. Par exemple:
var viewModel = {
firstName: ko.observable().extend({ minLength: 2, maxLength: 10 }),
lastName: ko.observable().extend({ required: true }),
emailAddress: ko.observable().extend({ // custom message
required: { message: 'Please supply your email address.' }
})
};
Knockout.js la validation est très pratique mais il n'est pas robuste. Vous devez toujours créer la validation côté serveur réplica. Dans votre cas (que vous utilisez knockout.js) vous envoyez des données JSON au serveur et à l'arrière de manière asynchrone, de sorte que vous pouvez faire l'utilisateur pense qu'il voit la validation côté client, mais en fait, il serait asynchrone côté serveur de validation.
Jetez un oeil à l'exemple ici upida.cloudapp.net:8080/org.upida.exemple.knock-out/de commande/de créer?clientId=1 C'est une "Créer une Commande" lien. Essayez de cliquez sur "enregistrer", et de jouer avec les produits. Cet exemple est réalisé à l'aide de upida de la bibliothèque (il y a spring mvc version et asp.net mvc de cette bibliothèque) à partir de codeplex.