JS学习(三)JavaScript表单验证之约束验证 HTML 输入属性+表单验证API

一般情况下,我们做表单验证分为两种:

  1. 发送到后端,让后端程序进行验证
  2. 前端进行验证

今天主要涉及的是前端验证的一些小技巧。通常,我们会直接写函数,设置约束条件,规定输入值的类型,大小等等,不符合要求就弹出错误提示信息。
写一个例子,验证输入的值是否为大于100且小于300的值,当然,以下代码的限制条件不完整,仅仅作为例子进行展示,如下:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <p>请输入大于100且小于300的数字</p>
    <input id="id1" type="text" name="" value=""><button type="button" name="button" onClick="myFunction()">提交</button>
    <p id="p1"></p>
    <script type="text/javascript">
      function myFunction(){
        var val = document.getElementById('id1').value;
        if(val == ''){ //若输入的值为空
          document.getElementById("p1").innerHTML = '请输入数字';
          return;
        }
        if(val < 100 || val > 300){ //若输入的值大于300或小于100
          document.getElementById("p1").innerHTML = '输入错误';
          return;
        }else{
          document.getElementById("p1").innerHTML = '输入正确';
          return;
        }
      }
    </script>
  </body>
</html>

我们会发现我们需要设置很多限制条件去验证输入框内容的类型,值的大小,等等,还需要设置弹出来的错误信息,很麻烦,但其实JS结合HTML的属性约束提供了更方便的方法来做这件事。

HTML属性约束

首先我们要知道约束验证 HTML 输入属性,如下:

  1. min:输入框内的最小值
  2. max:输入框的最大值
  3. pattern:正则表达式,以验证输入的内容是否符合要求
  4. disabled:该输入框是否可用
  5. required:是否为必输项
  6. type:输入框输入值的类型

格式:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <p>输入大于100且小于300的数字</p>
    <input type="number" min="100" max="300" required>
  </body>
</html>

以上代码规定了,该输入框输入值类型为数字,最小值100,最大值300,必输。

JS对HTML进行表单验证的API

JS对html的input提供了两种方法,方便进行表单验证:

  1. input.checkValidity():在html的input元素中设定好约束之后,在js中,通过document.getElementById(‘xxxx’).checkValidity(),使用约束条件对输入内容进行验证
  2. input.validationMessage:通过document.getElementById(‘xxxx’).validationMessage直接调用,会自动根据html的写好的约束条件弹出对应的提示信息。

我们直接来看一下怎么使用,代码如下:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <p>输入大于100且小于300的数字</p>
    <input id='input1' type="number" name="" value="" min="100" max="300" required><button type="button" name="button" onclick="myFunction()">提交</button>
    <p id='message'></p>
    <script type="text/javascript">
      function myFunction(){
        if (document.getElementById('input1').checkValidity() == false){
          document.getElementById('message').innerHTML = document.getElementById('input1').validationMessage;
        }else{
          document.getElementById('message').innerHTML = '输入正确';
        }
      }
    </script>
  </body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值