关于提交数据的问题
回复内容:
要提交的数据必须放在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,