0

这是我当前未修改的代码:http: //jsfiddle.net/XABtF/

我目前正在使用jQuery ValidationKnockout Validation

我已经阅读了两者的文档并尝试将它们实施到我现有的脚本中,但都没有成功运行。以下是我尝试实施淘汰赛验证的方式:http: //jsfiddle.net/yNVeF/

我的脚本非常简单,我只想对两个 observable 进行验证,如下所示:

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 回答