can.js验证方法不起作用

时间:2015-05-23 21:47:04

标签: canjs

有人可以帮我调用can.js中的验证函数吗? 我添加了can.jquery.js和can.map.validations.js 然后创建一个小例子:

var mymap = can.Map.extend({
    init: function () {
      this.validatePresenceOf('myfield'); // this line reports an error
    }
});

使用此脚本加载页面时,我在浏览器中收到错误: "未捕获的TypeError:undefined不是函数"

实际上任何this.validate *函数都不起作用

经过一些研究后,我注意到当我把这段代码放在

之下时
$(document).ready{}

它可以工作,但是如果我将它放入.js文件并通过标签加载 - 浏览器报告错误。

我不打算在页面本身编写所有js代码

2 个答案:

答案 0 :(得分:0)

请参阅here它非常清楚地告诉我(上次帮助我)你必须使用$ document.ready()否则它不会工作,所以尝试制作一个新的file.js,有$ document.ready ()包含你所有的待办事项代码,并把它链接起来,我希望我在这方面很有帮助,如果不是那么让我烦恼起来我根本不介意:) ..

答案 1 :(得分:-1)

评论迟到但无论如何 - 在任何一种情况下它都不适合我,所以我只是从http://jsbin.com/jofeq/5/edit?html,js,output中取样并将其复制到我的代码中。令人惊讶的是,它在复制后起作用 - 不确定我身边出了什么问题。

在该示例中,它看起来像这样:

var Person = can.Map({
init: function () {
    this.validatePresenceOf('firstName');
    this.validatePresenceOf('lastName');
}
}, {});

它没有document.ready技巧或其他任何东西 - 只包含在body标记