Knockout JS验证现有视图模型

时间:2013-03-26 18:17:16

标签: javascript knockout.js knockout-validation

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

我目前正在使用jQuery Validation& Knockout Validation

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

我的脚本非常简单,我想将验证放在两个这样的observable上:

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

我试过这样做:

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

2 个答案:

答案 0 :(得分:1)

将jQuery验证放在我的applyBindings下面,并将视图模型名称绑定为' save':

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

答案 1 :(得分: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;
};