我在ASP.NET頁面上有3個HTML複選框。未經檢查複選框始終返回值
<input type="checkbox" id="level-option-1" name="level-option-1" value="1" checked />
<input type="checkbox" id="level-option-2" name="level-option-2" value="2" />
<input type="checkbox" id="level-option-3" name="level-option-3" value="3" />
這些字符串被創建的服務器側和加入到頁(通過設置Literal
的Text
)。 level-option-1
被選中。
當頁面回發時,Request.Form["level-option-1"]
的值爲1
(因爲複選框是通過服務器端的字符串版本檢查的)。 Request.Form["level-option-2"]
和Request.Form["level-option-3"]
不存在(如我所料)。
如果level-option-1
是(瀏覽器)選中,並level-option-2
檢查(瀏覽器),Request.Form["level-option-1"]
調回時仍具有1
值。 Request.Form["level-option-2"]
具有正確的值2
和Request.Form["level-option-3"]
不存在。
我不明白Request.Form["level-option-1"]
總是有價值。我曾嘗試使用XHTML checked="checked"
也具有相同的結果。
如果我修改字符串版本以便生成下面的內容 - Request.Form["level-option-1"]
只在瀏覽器中檢查時存在值1
- 這正是我所期望的。
<input type="checkbox" id="level-option-1" name="level-option-1" value="1" />
<input type="checkbox" id="level-option-2" name="level-option-2" value="2" />
<input type="checkbox" id="level-option-3" name="level-option-3" value="3" />
假設checked
屬性已設置爲服務器端,我怎麼知道如果它實際上是不檢查時,它的貼後背?這是正常的行爲嗎?
這也是我的理解,但不是我遇到的行爲:( – TechyGypo