欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于提交数据的问题

程序员文章站 2022-04-02 10:34:19
...
要提交的数据必须放在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,

相关标签: php