2013-05-17 126 views
1

我想了解究竟是什麼組合HTML輸入字段 「的值id」 組合

... value id= ... 

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

一樣。請注意,該值後面緊跟着id。

我的問題是,只要這樣的組合在輸入字段時(例如在Facebook登錄頁面「電子郵件或電話」字段(只)和無處不在的LinkedIn登錄頁),

document.getElementById(..).focus() 

方法失敗。我相信「價值id」組合可以做一些不重要的事情,因爲Facebook只將它用於一個字段,而所有其他字段都沒有在id之前的空值字段。

在此先感謝。

回答

4

它們是兩個完全不同的屬性。請注意,屬性由空格分隔,所以即使在之後沒有指定=(如在您的示例中)那樣,它也是一個明顯的屬性,並且不與以下內容結合使用。

  • value定義輸入(當頁面被呈現,將預先填充的值)的值。如果留空(如你的例子),它什麼都不做。但是,如果您確實輸入了value="hi",則文本框將被預填充「hi」

  • id指定輸入的唯一標識名稱。它用於使用JavaScript訪問DOM中的元素。 document.getElementById('session-key-login')

+0

我同意。但是,爲什麼不只是'... id = ...'或'.. value =「」id = ...' 更重要的是,爲什麼焦點方法只對這些字段失敗? –

+0

在我的答案中附加了答案。 –

+0

我正在那樣做。我不知道它是否與我的代碼(別的地方)有關,但如果在'id'之前沒有'value',那麼焦點可以在document.getElementById('session-key-login')中使用' –

0

我想我找到了我的焦點()問題的答案。

我發現在一個頁面上,調用焦點()一次集中在所需的元素。然而,對同一元素的第二次調用失敗,除非使頁面明顯失去先前的焦點,例如,通過調用相同元素上的blur()方法。

我可能是錯的,但我的猜測是,Facebook的重點隱藏/自動加載「電子郵件」領域,因此我的第二個重點不會做任何事情。雖然它適用於其他領域。

因此,由史蒂芬·莫斯利解釋持有緊:)

感謝, 尼基爾