主干验证插件不进行验证
Backbone validation plugin does not validate
我使用Backbone.Validation插件来验证一个简单的表单。下面是我的模型
var BuyerModel = Backbone.Model.extend({
defaults: {
name: '',
age: ''
},
validation: {
name: {
required: true
},
age: {
min: 18
}
},
initialize: function () {
_.extend(Backbone.Model.prototype, Backbone.Validation.mixin);
}
});
以下是我的观点
var BuyerModelFormView = Backbone.View.extend({
events: {
'click [name~="save"]': 'save'
},
initialize: function () {
Backbone.Validation.bind(this);
},
template: _.template(''
<form>'
Enter name:'
<input name="name" type="text" value="<%= name %>"><br>'
Enter age:'
<input name="age" type="text" value="<%= age %>"><br>'
<input type="button" name="save" value="Save">'
</form>' '),
render: function () {
var html = this.template(this.model.toJSON());
$(this.el).html(html);
},
save: function () {
console.log(this.model.toJSON());
this.model.set({
name: $('[name~="name"]').val(),
age: $('[name~="age"]').val()
});
console.log(this.model.toJSON());
}
});
以下是我如何使用它
var buyerModel = new BuyerModel();
var buyerModelFormView = new BuyerModelFormView({
model: buyerModel,
el: 'body'
});
buyerModelFormView.render();
当我在表单中输入任何内容并点击回车键时,它会更新模型,但不会验证。即使我输入的值不正确,模型仍然会更新。
我做错了什么?我该如何解决
像这样设置强制验证
this.model.set({
name: $('[name~="name"]').val(),
age: $('[name~="age"]').val()
}, {validate: true});
这是你想要的吗?
因为Model.set有这样的字符串
// Run validation.
if (!this._validate(attrs, options)) return false;
和
// Run validation against the next complete set of model attributes,
// returning `true` if all is well. Otherwise, fire an `"invalid"` event.
_validate: function(attrs, options) {
if (!options.validate || !this.validate) return true;
因此,如果你没有通过验证-它将被忽略
以这种方式检查
$(function(){
var buyerModel = new BuyerModel();
buyerModel.on('change', function(){
console.log('on change', arguments);
});
var buyerModelFormView = new BuyerModelFormView({
model: buyerModel,
el: 'body'
});
buyerModelFormView.render();
});
相关文章:
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- jQuery验证插件submitHandler Ajax
- Jquery 验证插件 - 字段仍然产生错误
- 在使用 jQuery 验证插件进行验证后,使用 AJAX 提交表单
- 附加要使用的变量jQuery验证插件
- Jquery验证插件在与<发件人:form>标签
- jquery在动态表单输入上验证插件不起作用
- 表单验证消息(使用jQuery验证插件)
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- jQuery验证插件,如果.is(“:已检查”),则需要该插件
- jQuery验证插件停止表单提交,提交按钮获胜'不起作用
- 如果选中了上一个复选框,则需要的验证插件
- jQuery表单验证插件's只有文字字段的问题
- Jquery验证插件两个按钮
- jquery验证插件-错误删除
- jQuery验证插件-表单不提交
- [contenteditable]元素和jQuery验证插件的问题
- 使用jquery验证插件检查数据库中是否存在电子邮件
- 如何从jQuery验证插件函数中删除AJAX
- 如何使用 Jquery 验证插件专门验证某个表单字段