0

これは変更されていない私の現在のコードです:http://jsfiddle.net/XABtF/

現在、jQuery検証ノックアウト検証の両方を使用しています

両方のドキュメントを読み、既存のスクリプトに実装しようとしましたが、どちらも正常に実行されませんでした。ノックアウト検証の実装を試みた方法は次のとおりです。http://jsfiddle.net/yNVeF/

私のスクリプトは非常に単純です。次のような2つのオブザーバブルに検証を加えたいと思います。

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

私はこのようにそれをやってみました:

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

2 に答える 2

1

jQueryのvalidateをapplyBindingsの下に配置し、ビューモデル名を「save」でバインドしました。

$("#getAcc").validate({ submitHandler: authViewModel.save });
于 2013-03-27T17:15:09.080 に答える
0

編集:以下のコメントによると、検証プラグインを使用する場合、エクステンダーはその一部です-そうでない場合は.../編集

エクステンダーは事前に作成されていません。ここのドキュメントに示されているように、必要なエクステンダーを追加する必要があります。

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;
};
于 2013-03-26T18:33:22.073 に答える