要提交的資料必須放在input標籤或textarea標籤內嗎?放在別的標籤裡面不行嗎?例如span標籤為什麼不行?如果用input或textarea不方便怎麼辦?
要提交的資料必須放在input標籤或textarea標籤內嗎?放在別的標籤裡面不行嗎?例如span標籤為什麼不行?如果用input或textarea不方便怎麼辦?
也是可以的,到時你就用js取得這些標籤的內容,然後組裝成要提交的數據,然後透過ajax提交給後端
單純的html form提交肯定行,但如果使用js處理的話,你可以隨便放,只要你能用js獲取到值就行了。 。
瀏覽器是如何提交表單的,或者說,瀏覽器在提交表單時,要做哪些事情。
瀏覽器不是將所有的表單控制項全部傳送到伺服器的,而是會尋找所有的【成功控制項】,只將這些成功控制項的資料傳送到服務端, 什麼是成功控制項呢?
簡單地來說,成功控制項是:每個表單中的控制項都應該有一個name屬性和」當前值“, 在提交時,它們將以 name=value 的形式做為提交資料的一部分。
對於某些特殊情況,成功控制還有以下規定:
控制不能是【停用】狀態,即指定【disabled="disabled"】。即:停用的控制項將不是成功控制項。
如果一個表單包含了多個提交按鍵,那麼僅當使用者點擊的那個提交按鈕才算是成功控制。
對於checkbox控制來說,只有被使用者勾選的才算是成功控制。
對於radio button來說,只有被使用者勾選的才算是成功控制。
對於select控件來說,所有被選擇的選項都做為成功控件,name由select控件提供。
對於file上傳文件控制項來說,如果它包含了選擇的文件,那麼它將是一個成功控制項。
此外,瀏覽器不會考慮Reset按鈕以及OBJECT元素。
注意:
對於checkbox, radio button來說,如果它們被確認為成功控件,但沒有為控件指定value屬性, 那麼在表單提交時,將會以"on"做為它們的value
如果在服務端讀不到某個表單控制項的值,請檢查它是否符合上述規則。
所以, form
表單提交只能識別上述html
類型, 其他類型form
提交時是不會提交到服務器的
參考自Fish Li,