我正在使用Backbone版本0.9.2,
jquery版本1.7.2和
Backbone.Validation v0.5.2
我的html看起来像(1),backbone.view(2)和backbone.model(3)。
似乎我的实施根本不起作用。
当我点击提交按钮时,它会执行POST请求而不进行任何表单验证。
任何想法为什么以及如何解决这个问题?
请参阅我的代码中的评论。
感谢。
(1)
<form method="POST" class="form1">
<div class="control-group">
<label for="reason" class="control-label">Reason</label>
<div class="controls">
<textarea id="reason" name="reason" required="required" /></textarea>
</div>
</div>
<!-- other codes -->
</form>
(2)
var myView = Backbone.View.extend({
initialize: function () {
this.model = new MyModel();
this.model.bind('validated:invalid', function(model, attrs) {
console.log('validated:invalid', model, attrs); // It does not work
});
this.model.bind('validated:valid', function(model) {
console.log('validated:valid', model); // It does not work
});
},
events: {
'click [data-tid="submit"]': 'submitForm'
},
submitForm: function (event) {
event.preventDefault();
this.model.set(data);
this.model.save({
success: function () {
// some code
}
});
}
(3)
var MyModel = Backbone.Model.extend({
urlRoot: 'someUrl',
validation: {
reason: {
required: true,
msg: 'Reason is required'
}
}
});
答案 0 :(得分:1)
在初始化中创建模型后,需要调用Backbone.Validation.bind(this)。
希望这有帮助!
答案 1 :(得分:-1)
您可以使用表单验证。我想你需要听取提交活动。
Backbone可以正常工作。
events: {
'submit': 'submit'
}