当前位置:   article > 正文

JS 表单、表单验证(表单判断、get、post、submit、validity、checkValidity)_js中的validity

js中的validity

实例一

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>阿西吧</title>
  6. </head>
  7. <head>
  8. <script>
  9. function validateForm(){
  10. var x=document.forms["myForm"]["fname"].value;
  11. if (x==null || x==""){
  12. alert("姓必须填写");
  13. return false;
  14. }
  15. }
  16. </script>
  17. </head>
  18. <body>
  19. <form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post">
  20. 姓: <input type="text" name="fname">
  21. <input type="submit" value="提交">
  22. </form>
  23. </body>
  24. </html>

实例二(E-mail 验证)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>阿西吧</title>
  6. </head>
  7. <head>
  8. <script>
  9. function validateForm(){
  10. var x=document.forms["myForm"]["email"].value;
  11. var atpos=x.indexOf("@");
  12. var dotpos=x.lastIndexOf(".");
  13. if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
  14. alert("不是一个有效的 e-mail 地址");
  15. return false;
  16. }
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <form name="myForm" action="demo-form.php" onsubmit="return validateForm();" method="post">
  22. Email: <input type="text" name="email">
  23. <input type="submit" value="提交">
  24. </form>
  25. </body>
  26. </html>

实例三(checkValidity函数,验证输入是否正确)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <p>输入数字并点击验证按钮:</p>
  8. <input id="id1" type="number" min="100" max="300" required>
  9. <button onclick="myFunction()">验证</button>
  10. <p>如果输入的数字小于 100 或大于300,会提示错误信息。</p>
  11. <p id="demo"></p>
  12. <script>
  13. function myFunction() {
  14. var inpObj = document.getElementById("id1");
  15. if (inpObj.checkValidity() == false) {
  16. document.getElementById("demo").innerHTML = inpObj.validationMessage;
  17. } else {
  18. document.getElementById("demo").innerHTML = "输入正确";
  19. }
  20. }
  21. </script>
  22. </body>
  23. </html>

约束验证 DOM 属性

属性描述
validity布尔属性值,返回 input 输入值是否合法
validationMessage浏览器错误提示信息
willValidate指定 input 是否需要验证

Validity 属性

input 元素的 validity 属性包含一系列关于 validity 数据属性:

属性描述
customError设置为 true, 如果设置了自定义的 validity 信息。
patternMismatch设置为 true, 如果元素的值不匹配它的模式属性。
rangeOverflow设置为 true, 如果元素的值大于设置的最大值。
rangeUnderflow设置为 true, 如果元素的值小于它的最小值。
stepMismatch设置为 true, 如果元素的值不是按照规定的 step 属性设置。
tooLong设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。
typeMismatch设置为 true, 如果元素的值不是预期相匹配的类型。
valueMissing设置为 true,如果元素 (required 属性) 没有值。
valid设置为 true,如果元素的值是合法的。

实例四(validity属性判断输入)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <p>输入数字并点击验证按钮:</p>
  8. <input id="id1" type="number" min="100" required>
  9. <button onclick="myFunction()">验证</button>
  10. <p>如果输入的数字小于 100 ( input 的 min 属性), 会显示错误信息。</p>
  11. <p id="demo"></p>
  12. <script>
  13. function myFunction() {
  14. var txt = "";
  15. var inpObj = document.getElementById("id1");
  16. if(!isNumeric(inpObj.value)) {
  17. txt = "你输入的不是数字";
  18. } else if (inpObj.validity.rangeUnderflow) {
  19. txt = "输入的值太小了";
  20. } else {
  21. txt = "输入正确";
  22. }
  23. document.getElementById("demo").innerHTML = txt;
  24. }
  25. // 判断输入是否为数字
  26. function isNumeric(n) {
  27. return !isNaN(parseFloat(n)) && isFinite(n);
  28. }
  29. </script>
  30. </body>
  31. </html>

实例五(setCustomValidity自定义错误信息的使用

HTML 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>文档标题</title>
  6. </head>
  7. <script type="text/javascript" src="myjs.js"></script>
  8. <body>
  9. <p>输入数字并点击验证按钮:</p>
  10. <>
  11. <input id="id1" type="number" min="100" max="300" required>
  12. <button onclick="myFunction()">验证</button>
  13. <p>如果输入的数字小于 100 或大于300,会提示错误信息。</p>
  14. <p id="demo"></p>
  15. </body>
  16. </html>

JS

  1. function myFunction() {
  2. var inpObj = document.getElementById("id1");
  3. inpObj.setCustomValidity(''); // 取消自定义提示的方式
  4. if (inpObj.checkValidity() == false) {
  5. if(inpObj.value==""){
  6. inpObj.setCustomValidity("不能为空!");
  7. }else if(inpObj.value<100 || inpObj.value>300){
  8. inpObj.setCustomValidity("请重新输入数值(100~300之间)!");
  9. }
  10. document.getElementById("demo").innerHTML = inpObj.validationMessage;
  11. } else {
  12. document.getElementById("demo").innerHTML = "输入正确";
  13. }
  14. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/110799
推荐阅读
相关标签
  

闽ICP备14008679号