问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何验证HTML的表单

发布网友 发布时间:2022-05-12 00:35

我来回答

2个回答

懂视网 时间:2022-05-12 04:56

这篇文章主要介绍了使用HTML5的表单验证的简单示例,包括手机端利用的一个小例子分享,需要的朋友可以参考下

HTML5对表单元素提供了patern属性,它接受一个正则表达式。表单提交时这个正则表达式会被用于验证表单内非空的值,如果控件的值不匹配这个正则表达就会弹出提示框,并阻止表达提交。提示框内的文字可以使用setCustomValidity方法来自定义。
  比如下面这个表单内,文本框只接受大陆的手机号,输入其它东西就无法提交
运行

<!DOCTYPE html>
<form>
 <input id="text" pattern="^1[3-9]d{9}$" required />
 <input id="button" type="submit" />
</form>

注意只有非空的表单才会使用正则验证,如果什么都不输入的话,pattern不会被使用,所以还需要required协助。但是这个代码弹出的提示是这样的:

这样的提示文字只有猴子看得懂!所以我们还需要更友好的提示文字,使用setCustomValidity方法来定义。
运行

<!DOCTYPE html>
<form>
 <input id="text" pattern="^1[3-9]d{9}$" required />
 <input id="button" type="submit" />
</form>
<script>
text.oninput=function(){ 
 text.setCustomValidity(""); 
}; 
text.oninvalid=function(){ 
 text.setCustomValidity("请不要输入火星的手机号好吗?"); 
}; 
</script>

invalid事件会在表单submit事件之前触发,如果验证不通过的话就不会触发表单的submit。而提交时会先验证所有表单元素是值是否有效。除了提交外还可以手动调用checkValidity方法来执行验证。
  上面的例子中我直接对控件设置固定的提示其实不太好,有时候可能需要更详细的提示信息,比如空的时候提示为空、太长的时候提示太长、非数字的时候提示非数字等。这些动作可以通过程序验证后动态地setCustomValidity来实现。
  其实我觉得HTML5的这套API设计的很糟糕,虽然可以满足基本需求,但还真不太实用。

手机页面中表单提交用JavaScript验证信息 会弹出窗口,用户体验极差,所以再给出一个手机端用HTML5的属性来验证的示例:

<input id="name" name="name" placeholder="name" required="" tabindex="1" type="text">
<input id="email" name="email" placeholder="telephone" required="" tabindex="2" type="text" pattern="(^(d{3,4}-)?d{7,8})$|^(13|15|18|14)d{9}$">
<input id="subject" name="subject" placeholder="example@domain.com" required="" tabindex="2" type="text">
 // 主要用了HTML的一下属性 
// 1.placeholder 提供可描述输入字段预期值的提示信息。 该提示会在输入字段为空时显示,并会在字段获 
//得焦点时消失 
//2.required 属性规定必需在提交之前填写输入字段 
//3.pattern 是正则表达式, 里面可以直接填写正则表达式

热心网友 时间:2022-05-12 02:04

HTML5验证
1
HTML5加强了表单验证功能,可验证是否可空及输入内容的类型及格式,并可通过为表单或控件设置
novalidate
属性指定在提交表单时不验证整个
form
或指定的input。
例:
<form
action="demo_form.asp"
method="get"
novalidate="false">
<input
type="text"
name="user_name"
required
novalidate="true"/>
<input
type="number"...
HTML5验证
1
HTML5加强了表单验证功能,可验证是否可空及输入内容的类型及格式,并可通过为表单或控件设置
novalidate
属性指定在提交表单时不验证整个
form
或指定的input。
例:
<form
action="demo_form.asp"
method="get"
novalidate="false">
<input
type="text"
name="user_name"
required
novalidate="true"/>
<input
type="number"
name="user_age"
/>
<input
type="submit"
/>
</form>
END
INPUT验证
1
INPUT
标签中通过
type属性指定输入内容类型:
email,指定输入内容为电子邮件地址。
url,指定输入内容为URL。
number,指定输入内容为数字,并可通过
min、max、step
属性指定最大最小及间隔。
date、month、week、time、datetime、datetime-local
指定输入内容为相应日期相关类型。
color,指定控件为颜色选择器。
例:<input
id="u_email"
name="u_email"
type="email"/>
END
其它验证
required
属性指定输入内容不可为空。
pattern
属性指定输入内容必须符合指定模式(正则表达式)。
例:
<input
id="phone_num"
name="phone_num"
type="text"
pattern="\d{3}-\d{4}-\d{4}"
placeholder="xxx-xxxx-xxxx"/>
END
JS验证
1
主流浏览器都已实现或实现了大部分HTML的验证功能,可各浏览器验证行为并不完全一致,为统一其验证行为,可按旧办法自定义JS方法统一浏览器的验证行为。
END
全部
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
mrna转录试剂盒 windows7应用程序损坏或丢失怎么办? 联想windows7怎么恢复不小心删除的应用 Win7电脑图标不见了如何恢复解决Win7电脑图标丢失问题的有效方法_百 ... 美女主播软件有哪些 什么软件看美女直播? 什么视频直播软件可以免费看女神直播? 钣金工业设计 钣金灰本段用途 关于刮胡子的相关问题 求一些戴上首饰后赞美的话,最好有实例,谢谢!!! 珠宝销售在,销售中如何给顾客造梦 销售员如何赞美客户 销售珠宝赞美客人的一些话术,越多越好 中秋节的征文,600字左右的,不要太复杂,也不要太简单,非常感谢..._百度... 霍奇基斯气冷式重机*为何只用气冷就能散大量的热?这其中的奥秘何在? 去做头发因为热要降温所以用冷风筒吹到头皮,结果不但感冒而且风湿如侵,照成全身游走疼痛,头也疼。胳膊 沥青蜡含量测定仪的试验步骤 鸡苗放在恒温多常时间 流延中添加丙二醇 三聚磷酸钠是什么做成的 为什么你们吹头发不用冷风筒 冷光电筒能比一般电筒省电吗? 冷光筒灯价格大概是多少 勃朗宁机* 是水冷式的 哪里有冷却桶呢。*管很细啊。不像马克心一样明显的粗管子啊 怎么查自己办过的手机号? 柠檬红茶如何冲泡 柠檬红茶的茶艺分为哪些步骤 柠檬红茶应该怎么弄呢? 悦享人生有我锐际相伴,给大家聊一聊我的一些看法! 【车主点评:悦享人生,爱车现代悦动】 为什么用完新生活祛痘的洗面奶脸上就长满了痘痘,就是那个白底蓝字的买的时候50元,是不是他导致我长痘痘 韩国新生活化妆品的真假辨别方法,有具体点的吗 二手荣耀平板5能卖多少钱 晚上吃泡萝卜有什么好处 白罗卜泡醋吃有什么好处? 股票延安必康目标股价多少?延安必康股票东方财富股吧?延安必康股票2021分红日期? excel表格怎么把图片验证关了 分手之后应该做朋友吗? 石家庄自驾游去哪里好玩呢 被单上有发黄,如何洗掉,还原本色? 什么是OGT网线? otg专用线是什么 粘土和太空泥不是一样的吗? 骆驼祥子 每一章感想 .. 24章,每一章的感想..20个字左右.. 骆驼祥子简介大约20字 微信买的生巧,预计三天到.会不会化掉或坏掉 子公司名称规定 ? 一汽集团所有子公司的名称有哪些? 梳打饼是碱性还是酸性食物 饼干是碱性还是酸性?