Form.Element - Prototype JavaScript 框架

Xunxin Prototype API

activate

activate(element) -> HTMLElement

使表单控件获得焦点,如果控件是一个文本输入框,还会选取输入框中的内容。

该方法其实是获取焦点和选择内容两个步骤的组合,因此,下面的两个语句是等价的(只是前一个语句 不会 返回控件本身):

Form.Element.focus('myelement').select() //译注:注意这里调用的是原生的 select 方法
$('myelement').activate()

猜一下哪种调用方式更好?;)

译注:第一个语句执行时会发生错误,原因在于 Form.Element.focus(element) 方法将传入的参数 element 直接返回,并未做任何处理,所以若传入的 element 是一个字符串,则返回值也是一个字符串。 另外,select 方法也存在同样的问题。
为修正这个问题,请修改 Prototype 的源码,将第 3562 行和第 3567 行(如果你曾经修正过 Element.relativize 的问题,则为第 3564 行和第 3569 行)的代码:

	$(element).focus();
替换为:
	element = $(element);
	element.focus();

注意:仅针对 Prototype 1.6.0.3,其它版本未知。