0
我面临的问题是,我的HTML淘汰赛与淘汰赛基本文本验证</p> <p>这里文本框验证错误
<input type="text" data-bind="value:text" />
<br />
<br />
<input type="button" data-bind="click:save" value="save" />
这里是我的脚本
$(document).ready(function() {
ko.validation.registerExtenders();
ko.validation.configure({
registerExtenders: true,
decorateElement: true
});
var vm = ko.validatedObservable({
text: ko.observable().extend({
required: true
}),
save: function() {
debugger;
if (this.isValid()) {
alert('success');
}
else {
this.errors.showAllMessages();
alert('error');
}
}
});
ko.applyBindings(vm);
});
我已经包含下面的脚本
<script src="/Scripts/jquery-2.1.1.min.js" type="text/javascript"></script>
<script src="/Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script src="/Scripts/knockout.mapping-latest.js" type="text/javascript"></script>
<script src="/Scripts/knockout.validation.min.js" type="text/javascript"></script>
当我运行这个我越来越'未定义是不是一个函数'在“this.isValid()”
请帮助我。
你应该说开始的无功自我=这一点;当初始化你的虚拟机以避免混淆。你得到这个错误是因为他没有找到这个isValid()。尝试将其改为自我。如果这不起作用,请检查是否所有脚本实际上都包含正确。 – sander 2014-12-04 09:57:10
我已经添加var self =这在保存功能和检查脚本,但同样的错误发生,..请帮助我。 – user1551433 2014-12-04 10:02:17
你误解了。你应该添加var self = this;作为var vm = ko.validatedObservable({。然后将if(this.isValid())更改为if(self.isValid())并再次检查之后的第一条语句 – sander 2014-12-04 10:09:40