1

我试图了解究竟是什么组合

... value id= ...

<input type="text" name="session_key" value id="session-key-login">

做。请注意,该值后面紧跟 id。

我的问题是,只要在输入字段中出现这样的组合(例如,在 Facebook 登录页面“电子邮件或电话”字段(仅)和 LinkedIn 登录页面中的任何地方),

 document.getElementById(..).focus()

方法失败。我确信“值 id”组合做了一些不平凡的事情,因为 Facebook 仅将它用于一个字段,而所有其他字段都没有在 id 之前的空值字段。

提前致谢。

4

2 回答 2

4

它们是两种完全不同的属性。请注意,属性由空格分隔,因此即使在后面指定 no 时=,如您的示例所示,它也是一个不同的属性,并且不与以下属性组合。

  • value定义输入的值(呈现页面时将预填充的值)。如果留空(如您的示例中),它什么也不做。但是,如果您这样做了,value="hi"那么文本框将预先填充“hi”

  • id指定输入的唯一标识名称。它用于访问 DOM 中的元素,使用 JavaScript,例如document.getElementById('session-key-login')

于 2013-05-17T11:39:56.190 回答
0

我想我找到了我的 focus() 问题的答案。

我发现是在一个页面上,调用 focus() 一次关注所需的元素。但是,对同一元素的第二次调用会失败,除非使页面显式失去先前的焦点,例如通过在同一元素上调用 blur() 方法。

我可能错了,但我的猜测是 Facebook 在加载时隐式/自动关注“电子邮件”字段,因此我的第二个关注点没有做任何事情。虽然它适用于其他领域。

所以,史蒂文·莫斯利的解释坚持不懈:)

谢谢,尼基尔

于 2013-05-18T09:54:08.843 回答