1、首先我们要设置表单的验证规则
2、然后根据表单的验证规则定义要显示验证消息,
3、最后通过JavaScript 和CSS相结合先将所有预定义的验证消息隐藏掉,然后再根据表单中的输入是否符合验证规则来控制验证消息的显隐状态。
下面我们就来通过一个具体的示例进行讲解,你可以将这个示例直接放在浏览器中运行查看效果,但是要注意代码中引用了第三方类库jQuery,运行时你要自己设置一下:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Forms: 验证提示</title>
// 设置一些必要的样式,如验证消息的文字样式和控制验证消息显隐的样式
<style>
input:valid {
background: #fff
}
input:invalid {
background: #fcc
color: #333
}
.validation-messages {
margin-bottom:15px
}
.validation-messages span {
font-size:0.8em
background-color:#eee
padding:6px
border:1px solid #ccc
border-radius:10px
color:#666
}
//所有class属性为hide的元素都会被隐藏
.hide {
display:none
}
</style>
</head>
<body>
<article>
<h1>Forms<span>- 验证提示</span></h1>
</article>
<div id="result-stub" class="well hidden">
<form id="change-email-form" name="change-email-form">
<fieldset>
<h4>修改邮箱地址</h4>
//设置表单应该遵循的验证规则。
//pattern 属性:规定用于验证输入字段的模式。
//maxlength 属性:规定输入字段的最大长度,以字符个数计。
//required属性:规定该input元素为必须的元素。
<label>用户名:</label>
<input type="text" name="username"
id="username" pattern="[a-zA-Z ]{5,}"
maxlength="30" required />
//设置表单的验证消息,并结合class属性样式将其隐藏起来
<div>
//这里的data-rule的属性值是HTML5表单中内置的验证规则中的一种
<span data-rule="valueMissing"
class="hide">用户名不能为空.</span>
<span data-rule="patternMismatch"
class="hide">必须是字母字符(长度应为5~30个字符).</span>
</div>
<label>邮箱地址:</label>
//设置表单应该遵循的验证规则。
<input type="email" name="email" id="email"
title="Email address is required" required />
//设置表单的验证消息,并结合class属性样式将其隐藏起来
<div>
<span data-rule="valueMissing">
邮箱地址不能为空.</span>
<span data-rule="typeMismatch">
邮箱格式不正确.</span>
</div>
<hr />
//设置两个按钮,作用分别是“清空表单内容和对表单中的内容进行验证
<button type="submit" id="submit"
name="submit">修改</button>
<button type="button" id="checkValidation"
name="checkValidation"
class="btn">验证</button>
</fieldset>
</form>
</div>
<script>
window.onload= function() {
//---
// 创建一个验证规则容器。
var ruleNames = []
// 填充验证规则容器.
// 寻找所有具有验证规则的元素,然后将该元素的data-rule属性值添加到验证规则数组中去。
$("[data-rule]").each(function(i, element) {
var ruleName = element.getAttribute('data-rule')
if ($.inArray(ruleName, ruleNames) <0) {
ruleNames.push(ruleName)
}
})
var
// 首先确定用户界面隐藏了所有验证消息。
// 然后在选定的表单上运行验证规则。
validate = function() {
$(".validation-messages span")
.addClass('hide')
document.getElementById('change-email-form')
.checkValidity()
},
// 查询每个输入的元素,以确定哪个元素无效。
// 一旦检测到无效元素,就遍历验证规则,找到无效的原因,然后通过消息对用户进行提示
validationFail = function(e) {
var
element = e.srcElement,
validity = element.validity
if (!validity.valid) {
ruleNames.forEach(function(ruleName) {
checkRule(validity,
ruleName,
element)
})
e.preventDefault()
}
},
// 使用 input 元素 的ValidityState 对象的实例来运行验证规则。
//如果这个验证规则返回ture,就表示无法通过验证,在表单中就会有相应的提示信息。
checkRule = function(state, ruleName, ele) {
if (state[ruleName]) {
$(ele).next()
.find('[data-rule="'
+ ruleName + '"]')
.removeClass('hide')
}
}
// 所有验证事件处理程序是附加在input元素上的而不是button元素
$(':input:not(:button)').each(function() {
this.oninvalid = validationFail
this.onblur = validate
})
$('#checkValidation').click(validate)
}
</script>
<script src="../js/jquery.js"></script>
</body>
</html>
推荐你去教程网站秒秒学上过一遍相关知识,希望对你有帮助。
n. 合法性;有效性;正确性
一、读音:英 [və'lɪdəti];美 [və'lɪdəti]
二、例句:
The judge did not question the validity of my statement。
法官对我的陈述的合法性没有表示怀疑。
三、词汇搭配:
content validity 内容的正确性...;
criterion validity 效标效度;
validity test 有效检验;
face validity (测验题的)表面效度...;
universal validity 普遍有效性;
data validity 数据有效性;
period of validity 有效期;
validity checker 有效性检验程序。
扩展资料近义词:virtue
一、意思:
n. 美德;德行;优点
二、读音:英 ['vɜːtʃuː];美 ['vɜːrtʃuː]
三、例句:
Fidelity to engagement is a virtue.
信守诺言是一种美德。
四、词汇用法:
merit,virtue,perfection,这些名词均可表示“优点、长处”之意。
(1)merit指有值得赞扬的优点,但不一定是出类拔萃。
(2)virtue指人或物的优点长处,或指人的美德。
(3)perfection指达到了理想或完美的程度。
正确性的英语有validity、correctness。
【validity】是指(法律上的)有效,合法,认可;真实性,正确性。
【例句】
(1)We had doubts about the validity of their argument.
我们对他们的论点的正确性有过怀疑。
(2)The question is not regarding the validity of speciation.
这个问题与物种形成论的正确性无关。
【correctness】正确性
【例句】
(1)The correctness of this decision may be doubted.
此项决定是否正确值得怀疑。
(2)A suggested explanation, so long as its correctness is still in doubt, is called a hypothesis.
提出来的解释,只要它的正确性仍然有疑问,便称为假说。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)