基本语法:
<input type=“hidden” name=“field_name” value=“value”>
用法说明:
1、其实它跟其他表单类型是一样的,同样具有value属性,唯一的区别是:表单隐藏域不会把这个元素显示出来,但是在提交过程中依然有效。
2、HTML采用<input>是为了显示文本数据
3、类型为hidden,是为了在显示数据的同时,不想让浏览用户看到,该数据只提供给程序员使用
4、由于在页面中可能采用多个程序眼控制使用的<input>,因此需要给一个标识,以备程序员读取其中的数据,name就是<input>的标识(有时采用id)。就像我们每个人一样,都有一个唯一的标识(身份证号)一样,name在理论上也是唯一的.
5、放到<form></form>中进行提交后,可以在接受处理页面进行request,获取该元素的值。
作用:
1、隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或者发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单时,隐藏域的信息也被一同发送到服务器。
2、有些时候,我们需要给确定用户的信息,让他在提交表单的时候来确定用户的身份,如sessionkey等,当让这些东西也能使用cookie实现,但是使用隐藏域的话就会相对简单一些,而且不会有浏览器不支持,用户禁用cookie的烦恼。
3、有时候,一个form中还有多个提交按钮,怎样使程序能够分清楚到底用户是按的哪一个按钮提交上来的呢?我们就可以使用隐藏域,然后每处按钮处都加上οnclick=”document.form.command.value=”**” 然后我们就可以在接到数据后,检查command的值就会知道用户是按的哪个按钮提交上来的。
4、有时候一个网页中有多个form,我们知道多个form是不能同时提交的,但有时候这些form确实会相互作用,我们就可以在form中添加隐藏域,使他们联系起来。
5、JavaScript不支持全局变量。但有时我们必须使用全局变量,这时我们就可以把值先存在隐藏域中,它的值就不会丢失了。
6、当想将ajax请求后的数据在另一个方法中使用时,就可以将ajax请求的数据先放入隐藏域中,当另一个方法使用时,该方法可以将数据从隐藏域中取出来
缺点
任何一个东西都有它的两面性,在我们看到它好的一面的同时,也必须意识到它的不足。
1、具有较高的安全隐患。
2、存储结构简单。
3、如果存储了较多的较大的值,则会导致性能问题。
4、如果隐藏域过多,则在某些客户端中被禁止。
5、隐藏域将数据存储在服务器上,而不存储在客户端
注意,如果开发中,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作