您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页html中关于form与表单提交操作的资料集合

html中关于form与表单提交操作的资料集合

来源:吉趣旅游网
html中关于form与表单提交操作的资料集合

这⾥我们介绍⼀下form元素与表单提交⽅⾯的知识。form元素

form元素的DOM接⼝是HTMLFormElement,继承⾃HTMLElement,因⽽它与其他的HTML元素拥有相同的默认属性,不过它⾃⾝还有⼏个独有的属性和⽅法:

属性值accept-charsetactionelementsenctypelengthmethodnamereset()submit()target

服务器能够处理的字符集,多个字符集⽤空格分割

接受请求的URL,该值可以被form元素中的input或button元素的formaction属性覆盖表单中所有控件集合(HTMLCollection)

请求的编码类型,该值可以被form元素中的input或button元素的formenctype属性覆盖表单中控件的数量

要发送的HTTP请求类型,通常是“get”或“post”,该值可以被form元素中的input或button元素的formmethod属性覆盖表单的名称

将所有表单域重置为默认值提交表单

⽤于发送请求和接收响应的窗⼝名称,该值可以被form元素中的input或button元素的formtarget属性覆盖

说明

autocomplete是否⾃动补全表单元素input元素

input元素是应⽤⾮常⼴泛的表单元素,根据type属性值的不同,有以下⼏种常⽤⽤法:

⽂本输⼊ 提交输⼊

单选钮输⼊ 复选框输⼊

数字输⼊ 输⼊框只能输⼊数字,可设置最⼤值,最⼩值。

范围输⼊ 类似number,但它会显⽰⼀个滑动条,⽽不是输⼊框。颜⾊输⼊会弹出⼀个颜⾊选择器。⽇期输⼊ 会弹出⼀个⽇期选择器。

email输⼊ 显⽰为⼀个⽂本输⼊框,并会弹出⼀个定制键盘。tel输⼊ 跟email输⼊类似

url输⼊ 跟email输⼊类似,也会弹出⼀个定制键盘。textarea元素可以创建⼀个多⾏的⽂本区。

其中cols和row的属性值分别表⽰⽂本区宽度和⾼度的字符。select元素和option元素结合使⽤可创建⼀个下拉菜单。

radio

如何 分组? 设置不同的 name属性即可例:

玩游戏写代码

⼥、这就是两组radioplaceholder

提供可描述输⼊字段预期值的提⽰信息(hint)。

该提⽰会在输⼊字段为空时显⽰,并会在字段获得焦点时消失。type=hidden

定义隐藏的input。隐藏字段对于⽤户是不可见的。隐藏字段通常会存储⼀个默认值,它们的值也可以由 JavaScript 进⾏修改。

⽐如⽤于安全⽅⾯,给后台传输⽤户不可见的name 和value值,让后台做校验,防伪造页⾯。提交按钮

在form中加⼊⼀个提交按钮,便可使⽤户得以提交表单。下列三种按钮皆可在点击时触发表单的submit事件:

规范中button元素的type默认值是submit,但是在IE678下默认值是button,所以从兼容性考虑有必要为button元素⼿动加上type=\"submit\"属性。submit事件

初⼼者可能会认为表单提交是提交按钮的click事件触发,其实不然,按钮元素的click事件与表单的submit事件在不同的浏览器中执⾏顺序不⼀,所以为了能准确控制表单提交事件,我们会选择在表单的submit事件中执⾏验证等操作。

form.addEventListener('submit', function (e) { if (valid()) { ... }

e.preventDefault()})

当form元素中没有上述的三个按钮中任何⼀个的时候,⽤户将⽆法提交表单(回车键也⽆效),此时可以利⽤form元素特有的submit()⽅法执⾏提交表单,需要注意的是调⽤submit()⽅法并不会触发form元素的submit事件,表单的验证等操作应该在调⽤submit()⽅法之前。

if (valid()) { form.submit()}

表单提交与⽤户体验

基于现在流⾏的ajax+跨域POST(CORS)技术,我们很可能不使⽤form元素直接向服务器提交数据。这虽然可⾏,但在⼤多数情况下存在着体验劣化现象。JavaScript 表单验证

JavaScript 可⽤来在数据被送往服务器前对 HTML 表单中的这些输⼊数据进⾏验证。被 JavaScript 验证的这些典型的表单数据有:⽤户是否已填写表单中的必填项⽬?⽤户输⼊的邮件地址是否合法?⽤户是否已输⼊合法的⽇期?

⽤户是否在数据域 (numeric field) 中输⼊了⽂本?必填(或必选)项⽬

下⾯的函数⽤来检查⽤户是否已填写表单中的必填(或必选)项⽬。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

function validate_required(field,alerttxt){

with (field){

if (value==null||value==\"\") {alert(alerttxt);return false}else {return true}}}

下⾯是连同 HTML 表单的代码:

Email:

E-mail 验证

下⾯的函数检查输⼊的数据是否符合电⼦邮件地址的基本语法。

意思就是说,输⼊的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的⾸字符,并且 @ 之后需有⾄少⼀个点号:

function validate_email(field,alerttxt){

with (field){

apos=value.indexOf(\"@\")dotpos=value.lastIndexOf(\".\")if (apos<1||dotpos-apos<2) {alert(alerttxt);return false}else {return true}}}

下⾯是连同 HTML 表单的完整代码:

Email:

快捷键提交

在没有form元素包裹的情况下,即使当前页⾯的焦点在表单元素上,按回车键也不会触发表单提交,对于⽤户⽽⾔,需要从键盘控制切换到⿏标/⼿势控制,破坏了原有的流畅度。解决⽅法最简单的就是在外层⽤⼀个form元素包裹,并且确定form元素中起码有⼀个提交按钮。此时当表单中的输⼊域得到焦点时,⽤户按回车键便会触发提交。浏览器记住账号密码

在提交表单时,⾼级浏览器包括移动端浏览器,会询问⽤户是否需要记住⽤户账号密码,对于⼀般⽤户⽽⾔,这是⼀个⼗分有⽤的特性,特别是在移动端,可以为⽤户节省很多时间。在没有form元素的情况下,浏览器不会弹出该询问窗⼝。

总结

我们在开发⼀个表单应⽤的时候,不应该尝试去除form元素直接进⾏提交,在form元素中应该包含⼀个提交按钮,如果是button元素,应该⼿动加上type=\"submit\"属性。提交事件的处理在form元素的submit事件中,⽽⾮提交按钮的click事件。参考:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务