form表單提交 細節 之什麼是有效控件?

表單提交問題描述:

在提交表單時,文本框內有值存在,通過js能獲取,但表單提交後,後臺獲取不到對應值.

問題原因分析:

表單提交時,只有 有效控件 的值會被提交到後臺,非有效控件的值,不會提交

有效控件概念:

有效控件是指,瀏覽器為實現表單數據的有效傳輸,實現規定好的,能夠提交數據的控件的狀態

案例分析:

為了保證案例的簡潔性,這裡只分析,非有效控件,除非有效控件外,其餘均為有效控件 (不含文件上傳部分)

案例代碼及界面如下:

前端html部分

form表單提交 細節 之什麼是有效控件?

後臺php部分

form表單提交 細節 之什麼是有效控件?

(1)正常情況下表單提交(即表單中所有控件的值均為非空狀態)

form表單提交 細節 之什麼是有效控件?

後臺獲取值情況:

form表單提交 細節 之什麼是有效控件?

結論: 在所有控件都非空的情況下,後臺是可以獲取所有控件的值,也就是,在非空狀態下,所有的控件都是有效控件

(2)全空狀態下,控件狀態

form表單提交 細節 之什麼是有效控件?

後臺獲取值情況:

form表單提交 細節 之什麼是有效控件?

可以看到,文本框,密碼框,下拉框 文本域是可以獲取值的,只有下拉框把第一個option作為默認值

結論:在全空狀態下,單選按鈕 和多選按鈕 是非有效控件

(3)把所有按鈕禁用後,控件狀態

form表單提交 細節 之什麼是有效控件?

後臺獲取值得情況如下:

form表單提交 細節 之什麼是有效控件?

可以看到,在禁用狀態下,所有的控件都是無效的

結論:禁用控件是無效控件,是無法向後臺提交數據的(這點很重要,)

(4)把控件設置為只讀屬性後,

由於只讀屬性,只有部分標籤支持,在後臺都可以獲取值,也就是對控件的有效性是沒有影響的,這裡就不附加圖片了

總結: 控件狀態為空的情況下,只有單選框 和多選框為無效控件 在禁用狀態下,所有的控件都是無效控件,其他情況均為有效控件狀態,

結語:以上都是個人學習的總結,若有不全或錯誤之處,歡迎評論之處,交流學習!!


分享到:


相關文章: