单击敲除js中的按钮触发验证

时间:2016-02-22 08:50:09

标签: javascript knockout.js knockout-validation

我有一个使用KOJ进行计算的表单,我需要在那里实现kojs验证,以便用户不应该在表单中提交空白字段..

我已经尝试了各种资源,但它们并没有太大帮助。

请你们解决这个问题。 任何帮助将不胜感激。

以下是我的代码

cond() && false || true

1 个答案:

答案 0 :(得分:1)

首先,您不需要生成数据对象。 Knockout具有以下优秀功能:ko.toJSON()。在ViewModel的第一行添加如下变量:

var self = this;

这样您就可以从任何函数访问viewModel对象。然后,在 submitForm 上设置

var data = ko.toJS(self);

关于验证,一个简单但不太优雅的解决方案是创建一个验证数据的函数,如:

    this.isValid = function() {
     return self.fullname().length > 0 && 
            self.email().length > 0 &&
            ... && the validations you want.
    }

此函数可用于验证submitForm上的对象。另一种方法是使用验证每个可观察对象的customHandler,例如

this.email = ko.observable(); 
this.email.valid = ko.computed() { 
  if (self.email())
    return self.email().length > 0;
  return false;
}

与其他人一样。然后,您只需要在submitForm函数上验证self.email.valid()。此外,这允许您在用户界面上显示元素是否有效。最后,您可以使用knockout validation插件。如你所见,有很多可能性!!!