2012-03-19 17 views
1

當使用jQuery移動時,我有一個關於在表單中使用ID屬性的問題。雖然我似乎功能,我想把一切都變成一個一致和準確的狀態。表單上的jQuery移動和唯一ID屬性

的jQuery Mobile的文檔狀態:

當構造形式在jQuery Mobile的使用,大部分用於創建通過普通的HTTP後提交或獲得形式的標準準則仍然適用。然而,需要記住的一件事是,表單控件的id屬性不僅在給定頁面上是唯一的,而且在網站中也是唯一的。這是因爲jQuery Mobile的單頁面導航模型允許同時在DOM中出現許多不同的「頁面」,因此您必須小心使用唯一的id屬性,這樣DOM中將只有一個(和當然,請確保通過for屬性將它們正確地與標籤元素配對)。

我有一個多頁的網站。 1頁每頁。根據頁面名稱,所有頁面中的所有表單都有一個唯一的ID(例如,「return-user-details.php」頁面獲得id =「rudForm」的表單ID)。

然而,這些頁面中的很多都需要相同的輸入字段(用戶名稱爲文本字段元素(又名錶格控件?))。這些全部使用name =「username」屬性和值。他們沒有ID屬性。

目前這一特定領域呈現爲:

<legend>Username:</legend> 
<input type="text" name="username" maxlength="20" /><label for="username">&nbsp;</label> 

我的主要問題是,是否我需要爲所有網頁上的用戶名文本字段以及形式ID的唯一ID,或可能我在所有頁面上都使用id =「username」做這個字段?我想這個答案也適用於每個元素/窗體控件? (因此,對頁面表單中的每個ID使用「頁面前綴」可能是一個好主意)。

正如我所說,目前我可以使用不同的頁面,每個頁面都包含這個字段,他們似乎運行良好,所以我的後續問題是關於使用上述哪些可能會出錯?雖然我理解「DOM中存在多個頁面」這樣的抽象概念(例如,要求事物是唯一的),但我不明白jQuery足夠了解這可能會轉化爲問題。它可能導致樣式/格式問題?或者也許還提交了不正確的數據?

非常感謝,

羅布

回答

2

這是從來沒有有效的多個項目,有一個單獨的HTML文檔在同一id屬性。如果您沒有指定該ID,則會在幕後爲您生成一個或留空。無論哪種方式應該沒有id屬性衝突。

編輯:我們在我們的jQuery手機網站中重複使用控件,並且像您的一樣,我們沒有指定id屬性。這工作正常,並已生產近一年。

+0

嗨,感謝您的回覆。我沒有在單個HTML文檔中重複使用相同的ID屬性 - 抱歉,如果不清楚:)我每頁有一個表單。每個表單都有一個唯一的ID。但是,例如,page1.php可能有一個用戶名字段,page2.php也可能有一個用戶名字段。這些需要唯一的ID嗎?如果他們在同一頁面上,這是顯而易見的,但他們不是。然而,頁面使用jQuery移動,這似乎暗示即使在不同的HTML文檔上也有唯一的ID,這就是我感到困惑的地方。很高興聽到你像我一樣使用它,並沒有問題! – Robin 2012-03-19 13:32:50

+0

對不起,我的迴應是......如果你正在做單頁面應用程序。 – mckeejm 2012-04-18 14:10:25