2013-03-26 1 views
0

Ceci est mon code actuel non modifié: http://jsfiddle.net/XABtF/knock-out JS Validation du modèle de vue existante

J'utilise actuellement deux jQuery Validation & Knockout Validation

J'ai lu dans la documentation sur les deux et avons essayé de les mettre en œuvre à mon script existant , les deux n'ont pas fonctionné avec succès. Voici comment je tenté de mettre en œuvre la validation Knockout: http://jsfiddle.net/yNVeF/

Mon script est très simple, je voudrais simplement mettre la validation sur deux observables comme ceci:

self.emailAdd = ko.observable(""); 

J'ai essayé de le faire comme ceci:

self.emailAdd = ko.observable("").extend({required: { message: 'Please supply your email address.' }}); 
+0

Quel est le problème? Est-ce que ça ne marche pas? Ça me va bien ... en supposant que vous avez inclus le plugin de validation. –

+0

Je pense que mon problème lie la validation au bouton de sauvegarde, j'ai un formulaire ajax à plusieurs étapes, et je ne comprends pas la syntaxe de l'inclusion de ce script dans la soumission. – Stephen

Répondre

1

placé le jQuery valider ci-dessous et mes applyBindings binded le point de vue le nom du modèle avec 'sauver':

$("#getAcc").validate({ submitHandler: authViewModel.save }); 
0

Edit: Selon les commentaires ci-dessous, si vous utilisez le plugin de validation, les extensions sont une partie de ce - sinon .../Modifier

Les extendeurs ne sont pas pré-écrits - vous devez ajouter votre propre prolongateur requis comme démontré dans la documentation ici.

http://knockoutjs.com/documentation/extenders.html

ko.extenders.required = function(target, overrideMessage) { 
    //add some sub-observables to our observable 
    target.hasError = ko.observable(); 
    target.validationMessage = ko.observable(); 

    //define a function to do validation 
    function validate(newValue) { 
    target.hasError(newValue ? false : true); 
    target.validationMessage(newValue ? "" : overrideMessage || "This field is required"); 
    } 

    //initial validation 
    validate(target()); 

    //validate whenever the value changes 
    target.subscribe(validate); 

    //return the original observable 
    return target; 
}; 
+0

Il a l'intention d'utiliser le plugin de validation. L'extension fait partie du plugin ... –

+0

@JeffMercado Oui, c'est correct. – Stephen