首页 > 其他分享 >使用 jQuery 进行前端验证

使用 jQuery 进行前端验证

时间:2023-06-01 10:23:30浏览次数:40  
标签:jQuery 验证 提示 前端 指定 数值 必须 输入

前段验证脚本的教程,其基础为jQuery的插件validate。

   一、可以验证哪些信息

  • 要求输入不能为
  • 要求输入格式必须为电子邮箱
  • 要求输入格式必须为URL
  • 要求输入格式必须为日期
  • 要求输入格式必须为数字
  • 要求输入格式必须为整数
  • 要求输入必须和指定输入框内容相同
  • 要求输入必须大于指定字符长度
  • 要求输入必须小于指定字符长度
  • 要求输入必须在指定字符长度范围内
  • 要求输入数字必须大于指定数值
  • 要求输入数字必须小于指定数值
  • 要求输入数字必须在指定数值范围内
  • 要求必须选择项
  • 要求必须选择不少于指定项
  • 要求必须选择不大于指定项
  • 要求必须选择在指定范围内的项数量

     虽然默认已经自带了许多日常中所需要的验证,但是客户的需求是不断改变的。但是这个插件已经想到了以后的功能扩展,通过指定的方法可以将设计者自定义的验证功能嵌入进validate插件中,并且不会破坏原有的验证功能。但日常很多地方上面提供的验证功能已经可以解决了很多了。所以我们下面将会以上面这些提供的验证逐一介绍如何使用。

     因为特殊的需求,所以我个人改变了错误信息呈现的方式,不是以label的方式呈现,而是更加友好更加动态的方式呈现错误提示信息。但由于需要技术保留,所以不能提供下载。但是所有的功能都可以实现的。

  

   二、快速学习

            验证基本上都是验证表单中的输入内容,所以首先需要指定验证的表单:

复制代码 复制代码
 1 <body>
 2   <form name="form1">
 3     <table>
 4       <tr>
 5         <td><label for="us">UserName:<input type="text" name="us" id="us" /></label></td>
 6       </tr>
 7       <tr>
 8         <td><label for="pwd">PassWord:<input type="password" name="pwd" name="pwd" /></label></td>
 9       </tr>
10     </table>
11   </form>
12 <script type="text/javascript">
13    $(function(){
14        $("#form1").validate();
15      });
16 </script>
17 </body>
复制代码 复制代码

 

    其中的“ $("#form1").validate(); ” 是最重要的,如果需要验证必须使用该代码,否则无法实现验证。如果指定的表单不同验证时只验证指定表单。

 

  三、漫漫学习

  1. 实现输入内容不能为空
    <input type="text" name="in" nValidate="{required:true}" />

     其中最重要的是   nValidate="{required:true}"  并且以后需要添加任何验证功能都要在 nValidate 中进行修改.

  2. 实现输入内容必须为电子邮箱
    <input type="text" name="ceemail" nValidate="{email:true}" />

     看到其中的 email:true  相信很多人都应该可以猜出后面如何使用不同的验证了。

  3. 实现输入内容必须为电子邮箱,且不能为空
    <input type="text" name="ceemail" nValidate="{required:true,email:true}" />

     这里我们使用了组合的方式将电子邮箱的验证功能和输入内容不能为空的验证功能同时启用,那么就可以实现必须输入内容并且输入的内容必须符合电子邮箱的格式。

  4. 实现输入内容必须为URL
    nValidate="{url:true}"

     为了更快速的学习,下面将会列出参数名称以及冒号后面所需要填写的参数和类型

  5. 实现输入内容必须为日期

    date:true
  6. 实现输入内容必须为数字

    number:true
  7. 实现输入内容必须为整数

    digits:true
  8. 实现输入内容必须和指定输入框内容相同

    equalTo:'#id'

    参数说明:
    id : 指定内容相同的输入框id

  9. 实现输入内容必须大于指定字符长度

    minlength:size
    参数说明:
    size : 指定字符串的长度
  10. 实现输入内容必须小于指定字符长度

    maxlength:size
    参数说明:
    size : 指定字符串的长度
  11. 实现输入内容必须在指定字符长度范围内

    rangelength:[minsize,maxsize]
    参数说明:
    minsize : 最短字符长度
    maxsize : 最长字符长度
  12. 实现输入数值必须大于指定数值

    min : num
    参数说明:
    num : 最小数值(输入的数值可以等于这个数值)
  13. 实现输入数值必须小于指定数值

    max : num
    参数说明:
    num : 最大数值(输入的数值可以等于这个数值)

  14. 实现输入数值必须在指定数值范围内

    range : [minnum,maxnum]
    参数说明:
    minnum : 最小数值
    maxnum : 最大数值

  四、自定义提示消息
          上面的学习仅仅是学习了如何使用该验证,但是对于用户而言,他并不知道哪里错了,为什么错的。所以我们经常需要提示用户输入的内容具有什么错误。虽然我已经内置了中文的提示信息,但是那只是比较死板的,真实的情况中,我们必须根据该输入框要求输入的内容更加友好的提示用户的输入到低具有什么错误,如何纠正。所以下面我们即将学习如何自定义提示的消息内容。

通用属性 -- messages


如果是设置不同输入错误的提示信息,必须在"messages"下进行增加修改,如下:

1 <input type="text" name="test2" nValidate="{required:true,messages:{required:'用户名不能为空'}}"

 对于上面的输入框,如果用户没有输入用户名则会提示用户“用户名不能为空”,而默认的是“字段不能为空”,一看就可以感觉到友好度更高了。
 并且可以设置不同错误类型所提示的消息,如下:

<input type="text" name="test1" nValidate="{required:true,number:true,minlength:5,maxlength:120,messages:{required:'请输入年龄',number:'请输入数字',minlength:'年龄不可以小于{0}岁',maxlength:'年龄不可以大于{0}岁'}}" />

 以上的代码将可以实现要求用户输入正确年龄的操作,并且不能为空,且输入的年龄范围必须在5~120岁之间,否则将会显示对应的错误,比如用户不输入内容则提示“请输入年龄”,输入的内容为非数值类型则提示:“请输入数字”,输入的数值小于5则提示:“年龄不可以小于5岁”,输入的数值大于120岁则提示:“年龄不可以大于120岁”,其中的”{0}“,后台jQuery将会用我们设置”minlength“和”maxlength“中的数值替换掉。这样就可以自定义消息了。:“请输入数字”,

下面将陈列可以自定义消息的输入验证,因为很多都已经封装,所以前台就这么简单了。

required : “输入为空时提示的消息”

number :”输入类型非数值类型时提示的消息“

minlength :”输入内容的字符创长度小于参数设置的值时提示的消息“       存在参数 {0} 为 minlength 设置的值

maxlength : ”输入内容的字符长度大于参数设置的值时提示的消息“         存在参数 {0} 为 maxlength 设置的值

rangelength : ”输入内容的字符长度不在指定范围长时提示的消息“          存在参数 {0} 为最短长度 {1} 为最长长度

min : ”输入的数值小于参数设置的值时提示的消息“       存在参数{0} 为 min 设置的值

max :”输入的数值大于参数设置的值时提示的消息“     存在参数{0} 为 max 设置的值

range : ”输入的数值不在指定范围时提示的消息“       存在参数{0} 为最小数值的值 {1} 为最大数值的值

email : ”输入内容不符合邮箱地址时提示的消息“

url : "输入的内容不符合URL地址时提示的消息"

digits :”输入的类型不是整数时提示的消息“

date :”输入的类型不是日期时提示的消息“

 

前端和后端的输入合法性验证

前端输入合法性的验证:

前端页面:

<div class = "col-12">
<div class="kx-form-group">
<lable class="col-6 kx-control-lable"><i class="red-cue">*</i>sim卡号<lable>
<input type="text class="col-12 form-text" ng-model="xxx" name="simCardNo" ng-blur="checkSimCardNo()"/>
<span id="checkSimCard" style="display:none">请输入字母或数字</span>
</div>
</div>
前端js:
var reg = /^[0-9a-zA-Z]*$/;
var csc=document.getElementById("checkSimCard");
$scope.checkSimCardNo = function(){
if(!reg.test($scope.myPosDeviceVo.simCardNo)){
csc.style.display="block";
$scope.myPosDeviceVo.simCardNo=undefined;
}
}
后端输入合法性的验证:

后端合法性验证需要改动三个地方:1.Vo类或者Model类需要加注解;2.数据库要自定义提示信息;3.前端页面需要在form中加validator=""和data-invalid-msg=""等必要信息。

1.在Vo类或者Model类中加注解

在我们需要验证的地方加注解例如@Require,@Length

例子:public class Xxj,里面包含属性如下

@Require(groups = {Save.class,Update.class})//require表示必填,也有其他注解如@Length和@Max分别表示字符串长度和能够表示的最大值

private String DeviceNo;

然后定义接口,例如:

public static interface Save{}

public static interface Update{}

这里的两个接口与上面的Save.class还有Update.class对应,用来区分在什么时候会用到这个字段的自定义提示,是在保存的时候,还是在更新的时候,名称可以自己定义。

在写完注解和接口之后如果我们启动tomcat会发现生成了两对js文件,每一对分别命名为Xxj_Save和Xxj_Update(这就是那两个接口的作用了),分别放在不同的目录下,一个是校验规则js一个是校验提示js。根据这两个js来发送提示信息。

注意:在business目录下的source/main/resource/properties目录下有一个application.properties文件,可以在里面配置那两个js的生成路径;application.properties文件里面也需要配置你的Vo类或者model类的路径。

2.数据库自定义提示信息

对应的数据库需要插入一些提示数据

key locale_id message latest_time
Require.xxj.deviceNo 1 设备号不能为空 ***
Require.xxj.deviceNo 2 DeviceNo Not Null ***
key列中的Require就是注解的字段,message为提示信息
在数据库中设置key列中的值时,注意大小写,因为在生成js的时候会默认的第一个单词是小写的。

3.在前端页面中写代码

<form g-validator="Xxj_Save" data-invalid-msg="tooltipMessenger">

对应input里面应该有个属性name=“deviceNo”

然后运行,看效果。

标签:jQuery,验证,提示,前端,指定,数值,必须,输入
From: https://www.cnblogs.com/kn-zheng/p/17448198.html

相关文章

  • JQuery笔记 - JQuery HTML
    JQueryHTML目录JQueryHTML1.获取与设置DOM1.1回调函数2.添加与删除DOM2.1append与after(prepend和before)的区别2.2重复添加元素3.CSS类3.1添加、删除和切换样式3.2css()1.获取与设置DOMtext()-设置或返回所选元素的文本内容//获取指定元素的文本内容$("#btn1")......
  • sklearn gridsearch不能使用验证集导致的过拟合问题
    https://stackoverflow.com/questions/31948879/using-explicit-predefined-validation-set-for-grid-search-with-sklearn  或者用optuna####useoptunalibtofinetuneSVChyperparametersifmethod=='optuna':importoptuna......
  • 交叉验证
    交叉验证在实际情况中,数据集是分为训练集和测试集的。而测试集通常被用户保留,并不对外公开,以防止在测试模型时作弊,故意使用让模型效果更好的数据进行测试,以至于模型遇上新的数据效果很差。于是我们通常将训练集进行分割,一部分用于训练,一部分用以测试,这里的测试其实叫做验证。......
  • 解决方案 | Windows 验证账号出现 0x80190001错误解决
    一、问题描述点击windows开始→账户→更改账户设置→验证,出现下面的错误。 二、解决方法网上流行的是这个方法,https://blog.csdn.net/qq_36393978/article/details/107413791 ,但是这个其实是恢复网络刷新dns的方法,大家可试一试。 如果不行,试试下面的方法,在任务栏搜索框......
  • 前端 React + vite + Typescript 后端 java + springmvc + jwt 跨域 解决方案
    首先后端配置跨域:web.xml文件: <!--配置跨域--><filter><filter-name>header</filter-name><filter-class>org.zhiyi.config.Cross</filter-class></filter><filter-mapping><......
  • 前端上传文件可能的问题
    上传文件失败,可能的原因1.前端默认限制了文件大小,例如我这里使用了 axios发送请求,默认是有大小显示的,可以在配置里面设置文件大小,比如设置内容和请求体大小为100M,默认打印出来的是-1config.maxContentLength=100*1024*1024;config.maxBodyLength=100*1024*10......
  • 阿里云验证码短信功能---SpringBoot项目
    阿里云官网:https://www.aliyun.com/activity/2023caigouji/shangyuncaigouji?utm_content=se_1013408957准备工作注册阿里云账号申请AccessKeyID和AccessKeySecret搜索“短信服务SMS”,选择“免费开通”即可选择国内消息,申请签名管理和模板管理准备完成后我们可以获取Access......
  • dockerfile镜像私有仓库需要https登录验证改成http
    ERROR:failedtodorequest:Head"https://192.168.16.185:8088/v2/jenkins/python_common_api/manifests/base":http:servergaveHTTPresponsetoHTTPSclientDockerfile:1--------------------1|>>>FROM192.168.16.185:8088/jenkins/p......
  • 验证码识别
    验证码识别是基于线上的打码平台识别验证码-打码平台:1.超级鹰(http://www.chaojiying.com/)-注册(用户中心身份)-登录(用户中心身份)-1.查询余额,请充值-2.创建一个软件ID(899370)-3.下载示例代码2.云打码3.打......
  • jquery.qrcode.js 和 jQuery.print.js 简单使用
    最近因为需要在前端生成二维码并打印二维码及相关内容,使用了jquery,jquery.qrcode.js,jQuery.print.js来实现代码<!DOCTYPEhtml><html><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script><scriptsrc="https://c......