2011-07-06 81 views
4

我一直在使用jQuery構建一個Ajax重站點。我通常使用jQuery選擇器來引用要與之交互(或從中檢索值)的單個INPUT/BUTTON/TEXTAREA/etc元素。我應該使用FORM標籤嗎?

我剛剛意識到今天早上我沒有使用過年齡的FORM標籤 - 我只是通過ajax請求來操縱所有東西。我的直覺告訴我這不太好,但另一方面,這不是一個問題(我不認爲它會很快成爲現實,滿足我們目前的所有需求)。

需要注意的一件事:我並不關心沒有JavaScript(它是一個公司局域網;所有的瀏覽器安裝都受到嚴格監管,所有的用戶都知道有JavaScript)。這就是說,是否有一些原因,我應該開始使用FORM標籤,我只是沒有看到?

+1

形式的標籤將可以很容易地創建通過'serialize' jQuery函數 –

+1

我不知道POST數據,但也許屏幕閱讀器處理表單中輸入的一個時,而不是如採取不同在一個div中。不知道,只是猜測:) –

+0

我還沒有使用它! :0 – check123

回答

2

是的,你仍然應該使用表單標籤。如果你想成爲真正的技術人員,那麼也應該有一個非JavaScript的備用方案。但是,無論如何,繼續使用<form>,<fieldset>,<legend><label>的主要原因是爲了實現可訪問性。

當涉及到web可訪問性時,表單確實是痛處。他們需要完美地進行屏幕閱讀器或其他輔助技術的平穩操作。事實上,根據ADA和第508條法律法規,所有這些標籤在製作表單時都需要。許多人會爭辯說,聯邦法規只適用於政府和國家的網站,但你可以在網絡無障礙問題上被起訴。

真的,遵守規則是個好主意。而且,個人而言,使用或不使用AJAX提交表單非常簡單。例如,我目前有幾種形式,強制他們可以在沒有JavaScript的情況下使用。所有表單都經過驗證並通過JavaScript提交(是的,它們也通過PHP腳本進行了二次驗證)。JavaScript提交的腳本與常規表單通過cURL提交的頁面相同。一個進程頁面提供了兩種不同的方法,它們具有相同的結果(以JSON形式提供,並通過jQuery或PHP的json_decode解碼),只是JavaScript版本更清潔,更優雅,更無縫。

總之,我覺得您的用戶會從包含適當標籤然後排除它們中受益更多,即使這些好處對您或他們而言並不明顯。

+0

很好的答案 - 謝謝!正是我在找的東西。 – loneboat

2

那麼,表單元素應該以...形式出現,對吧? The HTML5 spec(以及幾乎任何HTML規範)並沒有要求在<form>元素中有<input>元素等,但是除非您在標記中聲明實際上有一個表單,否則您的頁面中沒有真正的表單。

我認爲如果jQuery知道提交表單以及其他內容,您甚至可以更輕鬆地處理表單提交。

此外,您還禁用JavaScript的用戶進行思考。即使你不關心這些用戶,如果你的web應用程序沒有被jQuery/Ajax等處理,它仍然能夠處理「傳統」表單提交仍然很重要。

+0

感謝您的輸入。請注意,在我最後一段中,我解釋說它目前處於企業環境中。我保證有JS啓用。這且不說,不過,你的第一句話今天上午表達了我的想法,「等一下,不是這些_form elements_應該在_forms_去?」因此,關於_why_的問題。謝謝! – loneboat

1

是的。

當禁用JavaScript時,使用<表格>仍然可以將數據提交給服務器。考慮到有效的HTML規則,表單元素周圍需要FORM標籤。而且,屏幕閱讀器等輔助功能工具可以使用FORM標籤向用戶提供更多信息。

所以,你應該使用FORM標籤。 :)

+0

在這種情況下禁用JS並不是問題,但您的其他要點非常棒。謝謝! – loneboat