form表单提交 细节 之什么是有效控件?

表单提交问题描述:

在提交表单时,文本框内有值存在,通过js能获取,但表单提交后,后台获取不到对应值.

问题原因分析:

表单提交时,只有 有效控件 的值会被提交到后台,非有效控件的值,不会提交

有效控件概念:

有效控件是指,浏览器为实现表单数据的有效传输,实现规定好的,能够提交数据的控件的状态

案例分析:

为了保证案例的简洁性,这里只分析,非有效控件,除非有效控件外,其余均为有效控件 (不含文件上传部分)

案例代码及界面如下:

前端html部分

form表单提交 细节 之什么是有效控件?

后台php部分

form表单提交 细节 之什么是有效控件?

(1)正常情况下表单提交(即表单中所有控件的值均为非空状态)

form表单提交 细节 之什么是有效控件?

后台获取值情况:

form表单提交 细节 之什么是有效控件?

结论: 在所有控件都非空的情况下,后台是可以获取所有控件的值,也就是,在非空状态下,所有的控件都是有效控件

(2)全空状态下,控件状态

form表单提交 细节 之什么是有效控件?

后台获取值情况:

form表单提交 细节 之什么是有效控件?

可以看到,文本框,密码框,下拉框 文本域是可以获取值的,只有下拉框把第一个option作为默认值

结论:在全空状态下,单选按钮 和多选按钮 是非有效控件

(3)把所有按钮禁用后,控件状态

form表单提交 细节 之什么是有效控件?

后台获取值得情况如下:

form表单提交 细节 之什么是有效控件?

可以看到,在禁用状态下,所有的控件都是无效的

结论:禁用控件是无效控件,是无法向后台提交数据的(这点很重要,)

(4)把控件设置为只读属性后,

由于只读属性,只有部分标签支持,在后台都可以获取值,也就是对控件的有效性是没有影响的,这里就不附加图片了

总结: 控件状态为空的情况下,只有单选框 和多选框为无效控件 在禁用状态下,所有的控件都是无效控件,其他情况均为有效控件状态,

结语:以上都是个人学习的总结,若有不全或错误之处,欢迎评论之处,交流学习!!


分享到:


相關文章: