表單提交問題描述:
在提交表單時,文本框內有值存在,通過js能獲取,但表單提交後,後臺獲取不到對應值.
問題原因分析:
表單提交時,只有 有效控件 的值會被提交到後臺,非有效控件的值,不會提交
有效控件概念:
有效控件是指,瀏覽器為實現表單數據的有效傳輸,實現規定好的,能夠提交數據的控件的狀態
案例分析:
為了保證案例的簡潔性,這裡只分析,非有效控件,除非有效控件外,其餘均為有效控件 (不含文件上傳部分)
案例代碼及界面如下:
前端html部分
後臺php部分
(1)正常情況下表單提交(即表單中所有控件的值均為非空狀態)
後臺獲取值情況:
結論: 在所有控件都非空的情況下,後臺是可以獲取所有控件的值,也就是,在非空狀態下,所有的控件都是有效控件
(2)全空狀態下,控件狀態
後臺獲取值情況:
可以看到,文本框,密碼框,下拉框 文本域是可以獲取值的,只有下拉框把第一個option作為默認值
結論:在全空狀態下,單選按鈕 和多選按鈕 是非有效控件
(3)把所有按鈕禁用後,控件狀態
後臺獲取值得情況如下:
可以看到,在禁用狀態下,所有的控件都是無效的
結論:禁用控件是無效控件,是無法向後臺提交數據的(這點很重要,)
(4)把控件設置為只讀屬性後,
由於只讀屬性,只有部分標籤支持,在後臺都可以獲取值,也就是對控件的有效性是沒有影響的,這裡就不附加圖片了
總結: 控件狀態為空的情況下,只有單選框 和多選框為無效控件 在禁用狀態下,所有的控件都是無效控件,其他情況均為有效控件狀態,
結語:以上都是個人學習的總結,若有不全或錯誤之處,歡迎評論之處,交流學習!!