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,其它版本未知。