JavaScript 表单:验证输入,自动HTML表单验证,数据验证,约束验证

1.JavaScript表单验证
<!DOCTYPE html>
<html>
<head>
<script>
function validateForm() {
  var x = document.forms["myForm"]["fname"].value;
  if (x == "") {
    alert("必须填写姓名!");
    return false;
  }
}
</script>
</head>
<body>
<form name="myForm" action="/action.php" onsubmit="return validateForm()" method="post">
  姓名:<input type="text" name="fname">
  <input type="submit" value="提交">
</form>
</body>
</html>
2.自动HTML 表单验证
  • HTML表单验证能够被浏览器自动执行 如果表单字段为空,required 属性防止表单被提交:
<form action="/action.php" method="post">
   <input type="text" name="fname" required>
   <input type="submit" value="Submit">
</form>

不适用于IE9或者更早版本。

3数据验证
  • 数据验证指的是确保干净,正确和有用的用户输入的过程。
  • 典型的验证任务就是:
    - 用户是否已填写所必须的字段?
    - 用户是否已输入有限的日期?
    - 用户是否在数字字段中输入了文本?
4HTML约束验证
  • HTML5引入了一种新的HTML验证概念,名为约束验证
  • HTML约束验证基于:
    - 约束验证HTML输入属性
    - 约束 验证CSS伪选择器
    - 约束验证DOM属性和方法
4.1约束验证HTML 输入属性
属性描述
disabled规定 input 元素应该被禁用
max规定 input 元素的最大值
min规定 input 元素的最小值
pattern规定 input 元素的值模式
required规定输入字段需要某个元素
type规定 input 元素的类型
4.2约束验证CSS伪选择器
选择器描述
:disabled选择设置了 “disabled” 属性的 input 元素。
:invalid选择带有无效值的 input 元素。
:optional选择未设置 “required” 属性的 input 元素。
:required选择设置了 “required” 属性的 input 元素。
:valid选择带有有效值的 input 元素。

点击查看:CSS伪类

4.3约束验证DOM方法
属性描述
checkValidity()返回 true,如果 input 元素包含有效数据
setCustomValidity()设置 input 元素的 validationMessage 属性。

使用checkValidity()方法:

<body>
    <p>输入数字并提交:</p>
    <input type="number" id="submit" min="100" max="300" required>
    <button onclick="submit()">提交</button>
    <p id="demo"></p>
    <script>
        function submit() {
            var inpObj = document.getElementById("submit");
            if (!inpObj.checkValidity()) {
                document.getElementById("demo").innerHTML = inpObj.validationMessage;
            } else {
                document.getElementById("demo").innerHTML = "输入有效";
            }
        }
    </script>
</body>
4.4约束DOM属性
属性描述
validity包含与 input 元素的合法性相关的布尔属性。
validationMessage包含当 validity 为 false 时浏览器显示的消息。
willValidate指示是否验证 input 元素。
4.4.1合法性属性 input元素的validity属性包含了与数据合法性相关的一系列属性
属性描述
customError设置为 true,如果设置自定义的合法性消息。
patternMismatch设置为 true,如果元素值不匹配其 pattern 属性。
rangeOverflow设置为 true,如果元素值大约其 max 属性。
rangeUnderflow设置为 true,如果元素值小于其 min 属性。
stepMismatch当字段拥有 step 属性,且输入的 value 值不符合设定的间隔值时,该属性值为 true。
tooLong设置为 true,如果元素值超过了其 maxLength 属性。
typeMismatch当字段的 type 是 email 或者 url 但输入的值不是正确的类型时,属性值为 true。
valueMissing设置为 true,如果元素(包含 required)没有值。
valid设置为 true,如果元素值是有效的。
<!DOCTYPE html>
<html>
<body>

<p>输入数字并点击提交:</p>

<input id="id1" type="number" max="100">

<button onclick="myFunction()">提交</button>

<p>如果数字大于 100(输入的 max 属性),将显示错误消息。</p>

<p id="demo"></p>

<script>
function myFunction() {
  var txt = "";
  if (document.getElementById("id1").validity.rangeOverflow) {
    txt = "值太大";
  } else {
    txt = "输入有效";
  } 
  document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

js表单验证控制代码大全 /* 目录: 1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字 5:只能输入英文字符和数字 6: js email验证 、js 判断email 、信箱/邮箱格式验证 7:js字符过滤,屏蔽关键字 8:js密码验证、判断密码 2.1: js 不为空、为空或不是对象 、判断为空 、判断不为空 2.2:比较两个表单项的值是否相同 2.3:表单只能为数字和"_", 2.4:表单输入数值/长度限定 2.5:中文/英文/数字/邮件地址合法性判断 2.6:限定表单项不能输入的字符 2.7表单的自符控制 1. 检查一段字符串是否全由数字组成 2. 怎么判断是否是字符 3. 怎么判断是否含有汉字 4. 邮箱格式验证 5. 数字格式验证 6. 电话号码格式验证 7. 判断输入是否为中文的函数 8. 综合的判断用户输入的合法性的函数 9. 判断密码是否输入一致 10. 判断用户名是否为数字字母下滑线 2.8:form文本域的通用校验函数 */ 1. 长度限制 function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } 2. 只能是汉字 3." 只能是英文 function onlyEng() { if(!(event.keyCode>=65&&event.keyCode<=90)) event.returnvalue=false; } 4. 只能是数字 function onlyNum() { if(!((event.keyCode>=48&&event.keyCode=96&&event.keyCode<=105))) //考虑小键盘上的数字键 event.returnvalue=false; } 5. 只能是英文字符和数字 6. 验证油箱格式 function isEmail(strEmail) { if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true; else alert("oh"); } 7. 屏蔽关键字(这里屏蔽***和****) function test() { if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){ alert(":)"); a.b.focus(); return false;} } <form name=a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值