关于提交数据的问题

原创
2016-08-18 09:15:40 1001浏览

要提交的数据必须放在input标签或者textarea标签内吗?放在别的标签里面就不行吗?比如span标签为什么就不行?如果用input或者textarea不方便怎么办?

回复内容:

要提交的数据必须放在input标签或者textarea标签内吗?放在别的标签里面就不行吗?比如span标签为什么就不行?如果用input或者textarea不方便怎么办?

也是可以的,到时你就用js获取这些标签的内容,然后组装成要提交的数据,然后通过ajax提交给后端

单纯的html form提交肯定行,但如果使用js处理的话,你可以随便放,只要你能用js获取到值就行了。。

表单提交

浏览器是如何提交表单的,或者说,浏览器在提交表单时,要做哪些事情。

浏览器并不是将所有的表单控件全部发送到服务器的,而是会查找所有的【成功控件】,只将这些成功控件的数据发送到服务端, 什么是成功控件呢?
简单地来说,成功控件就是:每个表单中的控件都应该有一个name属性和”当前值“, 在提交时,它们将以 name=value 的形式做为提交数据的一部分。
对于一些特殊情况,成功控件还有以下规定:

  1. 控件不能是【禁用】状态,即指定【disabled="disabled"】。即:禁用的控件将不是成功控件。

  2. 如果一个表单包含了多个提交按键,那么仅当用户点击的那个提交按钮才算是成功控件。

  3. 对于checkbox控件来说,只有被用户勾选的才算是成功控件。

  4. 对于radio button来说,只有被用户勾选的才算是成功控件。

  5. 对于select控件来说,所有被选择的选项都做为成功控件,name由select控件提供。

  6. 对于file上传文件控件来说,如果它包含了选择的文件,那么它将是一个成功控件。

此外,浏览器不会考虑Reset按钮以及OBJECT元素。

注意:

  1. 对于checkbox, radio button来说,如果它们被确认为成功控件,但没有为控件指定value属性, 那么在表单提交时,将会以"on"做为它们的value

  2. 如果在服务端读不到某个表单控件的值,请检查它是否满足以上规则。

所以, form表單提交只能識別上述html類型, 其他類型form提交時是不會提交到服務器的


參考自Fish Li,

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。