TimedObserver.Form.Observer - Prototype JavaScript 框架

Xunxin Prototype API

Form.Observer

new Form.Observer(element, frequency, callback)

一个定时观察器,当表单中任意一个控件的值发生变化时,将触发回调。
译注:注意,若要使用表单观察器,则表单中需要检测的控件必须添加 name 属性

Form.Observer 使用 Form.serialize() 实现 getValue 方法。关于定时观察器的描述见 Abstract.TimedObserver

样例

在下面的样例中,如果表单中任意控件的值发生变化,则改变表单的外观显示。当数据提交后(储存), 表单重置为初始时的外观。

Login Preferences

Current settings:

Login options

上面样例的完整 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 中正常。但考虑到跨浏览器因素,请尽量使用空字符串 ''