Form.Observer
new Form.Observer(element, frequency, callback)
一个定时观察器,当表单中任意一个控件的值发生变化时,将触发回调。
译注:注意,若要使用表单观察器,则表单中需要检测的控件必须添加
name
属性。
Form.Observer
使用 Form.serialize() 实现
getValue
方法。关于定时观察器的描述见
Abstract.TimedObserver。
样例
在下面的样例中,如果表单中任意控件的值发生变化,则改变表单的外观显示。当数据提交后(储存), 表单重置为初始时的外观。
上面样例的完整 JavaScript 代码如下:
new Form.Observer('example', 0.3, function(form, value){
$('msg').update('Your preferences have changed. Resubmit to save').style.color = 'red'
form.down().setStyle({ background:'lemonchiffon', borderColor:'red' })
})
$('example').onsubmit = function() {
$('msg').update('Preferences saved!').style.color = 'green'
this.down().setStyle({ background:'', borderColor:'' })
return false
}
译注:注意上面代码中:
this.down().setStyle({ background:'', borderColor:'' });
这一行,原文为:
this.down().setStyle({ background:null, borderColor:null });
在 IE 中会出现错误,因为 IE 不允许给 style
的相关属性赋 null
值。
FireFox 中正常。但考虑到跨浏览器因素,请尽量使用空字符串 ''
。