對於給定的HTML表單,是否需要用戶代理以特定順序構建提交請求?是否需要HTML用戶代理以特定順序提交表單數據?
我正在瀏覽HTML 4.0.1規範,它似乎沒有指定「成功控件」成爲提交請求的一部分的順序。 Section 17.13.3,處理表單數據,規定:
當用戶提交一個形式(例如,通過激活提交按鈕),則用戶代理如下處理它。
步驟一:確定successful controls
第二步:建立一個表格的數據集
甲形式的數據集是從成功控制
構造的 control-name/ current-value對一個序列第三步:編碼表格數據集
然後根據
FORM
元素的enctype
屬性指定的內容類型對錶單數據集進行編碼。第四步:提交的編碼形式的數據集
在步驟2中,表格數據組被描述爲序列,所以在其中在步驟編碼的順序3大概是固定。但是,這引出了數據集中成功控制順序的問題。
例如,給定以下HTML形式:
<form action="#" method="GET">
<input type="hidden" name="key1" value="value1" />
<div>
<div>
<input type="hidden" name="key2" value="value2" />
</div>
<input type="hidden" name="key3" value="value3" />
<input type="submit" name="submit" value="Submit" />
</div>
<input type="hidden" name="key5" value="value5" />
</form>
可能形式的數據集是
[(
"key1"
,"value1"
),("key2"
,"value2"
),("key3"
,"value3"
) ,("submit"
,"Submit"
),("key5"
,"value5"
)]
(即, DOM的深度優先搜索);或
[(
"key1"
,"value1"
),("key5"
,"value5"
),("key3"
,"value3"
),("submit"
,"Submit"
),("key2"
,"value2"
)]
(A廣度優先搜索);或者甚至是通過迭代隨機哈希表中的控制名稱/當前值對而產生的非確定性順序?
使用IE 9和Firefox 9.0測試此表單。1,似乎都使用深度優先的搜索順序。也許其他瀏覽器是不同的。問題是這個命令是否在某處被規定。
不要認爲他們需要遵循的順序。 – vdbuilder 2011-12-31 23:30:16