我试图在Backbone Stickit中使用Backbone Validation,我希望在用户输入时一次验证一个属性.但是,当用户输入值时,模型上的所有属性都会得到验证,而不仅仅是用户已更改的属性.我究竟做错了什么?
我的看法:
bindings:{
'#username' : {
observe:'username',
setOptions: {
validate:true
}
},
'#email' : {
observe:'email',
setOptions: {
validate:true
}
},
'#firstname' : {
observe:'firstName',
setOptions: {
validate:true
}
},
.......
onShow: function(){
Backbone.Validation.bind(this, {
valid: function(view, attr) {
alert('VALID - ' + attr);
},
invalid: function(view, attr, error) {
alert('INVALID - ' + attr);
}
});
this.stickit();
},
Run Code Online (Sandbox Code Playgroud) 我在视图中有很多事件绑定到元素,但是当我使用stickit js通过更改模型来更改视图中的值时,它不会触发onChange事件.
有没有办法可以为当前模型触发onchange事件:在模型中设置值后的元素,而不必为每个绑定编写处理程序?这适用于所有表单元素input/select/textarea.
我想为页面上的每个表单元素避免以下内容:
bindings: {
'#foo': {
observe: 'foo',
afterUpdate: 'forceChange'
},
'#bar': {
observe: 'bar',
afterUpdate: 'forceChange'
},
...
},
forceChange: function(el) { jQuery(el).change() }
Run Code Online (Sandbox Code Playgroud) 我有一个日期选择器,可以在输入上设置日期.我用stickit绑定它.问题是,由于datepicker(而不是击键)改变了输入的值,因此stickit绑定不会观察到更改.如果我手动输入日期,则没有问题.
bindings: {
'input[name=RecordDate]': {
observe: 'recdate',
onSet: 'dosome'
}
},
Run Code Online (Sandbox Code Playgroud)