form表单介绍

form表单介绍,第1张

表单在web应用中主要是用来进行数据收集的,将用户的输入通过表单收集后传给服务端

常用的input标签:

type=text:输入类型是text,这是我们见的最多也是使用最多的,比如登陆输入用户名,注册输入电话号码,电子邮件,住址等等。

type=password:输入类型是password,一看就明白的密码输入框,最大的区别就是当在此输入框输入信息时显示为保密字符。

type=textarea:输入类型是textarea,用来输入大段文字

type=hidden:表单的隐藏域,一般用来传递参数,而又不想显示在客户端,就可以用hidden来实现

type=checkbox:多选框,常见于注册时选择爱好、性格、等信息。参数有name,value及特别参数checked(表示默认选择) 其实最重要的还是value值,提交到处理页的也就是value。

type=radio:单选框,出现在多选一的页面设定中。参数同样有name,value及特别参数checked。不同于checkbox的是,name值一定要相同,否则就不能多选一。当然提交到处理页的也还是value值。

type=file:文件上传选项,作为文件上传的按钮,点击文件上传按钮后会d出目录框供选择文件

type=submit or type=reset

分别是“提交”和“重置”两按钮,submit主要功能是将Form中所有内容进行提交action页处理,reset是快速清空所有填写内容的功能。

GET和POST是HTTP请求的两种基本方法,他们的区别主要有以下几点

GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

GET书签可收藏,POST为书签不可收藏。

GET能被缓存,POST不能缓存 。

GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中。

GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。

GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。

   1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如checkbox和radio, 而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。

    2. frame和window的名字,用于在其他frame或window指定target。

radio分组通过控制name属性值来实现,相同的name属性值为一组,例如:

<input type=radio name="sex" value="男">男

<input type=radio name="sex" value="女">女

<input type=radio name="sex1" value="男">男

<input type=radio name="sex1" value="女">女

这里面的name属性值有两个,一个是sex,另外一个是sex1,通过name的设置就自动的将这里的4个单选分成了两组,name="sex"的为一组,name="sex1"为另一组

总结:控制name属性值来实现radio的分组

placeholder 属性提供可描述输入字段预期值的提示信息(hint)。该提示会在输入字段为空时显示,并会在字段获得焦点时消失。placeholder是html5的新属性。

  1、隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。

2、有些时候我们要给用户一信息,让他在提交表单时提交上来以确定用户身份,如sessionkey,等等.当然这些东西也能用cookie实现,但使用隐藏域就简单的多了.而且不会有浏览器不支持,用户禁用cookie的烦恼。

3、有些时候一个form里有多个提交按钮,怎样使程序能够分清楚到底用户是按那一个按钮提交上来的呢?我们就可以写一个隐藏域,然后在每一个按钮处加上 onclick="document.form.command.value="xx""然后我们接到数据后先检查command的值就会知道用户是按的那个按钮提交上来的。

4、有时候一个网页中有多个form,我们知道多个form是不能同时提交的,但有时这些form确实相互作用,我们就可以在form中添加隐藏域来使它们联系起来。

5、javascript不支持全局变量,但有时我们必须用全局变量,我们就可以把值先存在隐藏域里,它的值就不会丢失了。

6、还有个例子,比如按一个按钮d出四个小窗口,当点击其中的一个小窗口时其他三个自动关闭.可是IE不支持小窗口相互调用,所以只有在父窗口写个隐藏域,当小窗口看到那个隐藏域的值是close时就自己关掉。

如:

1、<input type=hidden name=coun value=<%=cc%>>

这里的隐藏域名为coun,值为<%=cc%>,假设前面cc=100的话,即值为100;

2、递交表单<form action=xx.asp>到新页面xx.asp;

3、在xx.asp页中,使用request.write request.form("coun"),则在页面中显示的值就是100。

上传这样的功能本来就应该独立出来,为以后能够更好的扩展和组件重用做准备。至于你的这个问题也很容易处理,问题的关键不在于后台处理的程序如何安排,而在于页面的表现形式,因为程序本身既然独立出来了,你的ACTION也是独立出来的,那么就把页面里的上传功能独立出来。

举例来说:

在你的表单里添加一个上传按钮,点击后d出一个漂浮的div图层,然后在这个图层里可以放置单个的文件浏览按钮,或者动态的增加多个需要上传的浏览按钮,都是很灵活的,然后把这个图层使用单独的form标签包围起来就可以了。

类似的功能像很多论坛程序都在使用,比较成熟的js组件也可以实现,比如ExtJs、jQuery等等,一般来说能够提供web editor功能的js组件对于上传都是类似的处理方式。

文件上传

使用POST方式上传,数据类型使用multipart/form-data

至于提交方式

不局限于 用submit 按钮提交

至于 "第一个submit就必须file的一部分" 你不必较真 表单内可含有 其他数据, 按需排序

实际开发中多有 js 触发表单提交

可灵活使用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11719370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存