vue表单验证不起作用,vue3 表单验证_1

  vue表单验证不起作用,vue3 表单验证

  这篇文章主要为大家详细介绍了某视频剪辑软件实现表单验证功能,基于NUXT的生效方法实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本篇主要讲述如何基于NUXT的生效方法实现表单的验证。

  将验证方法封装后,使用的时候只需像:rules= filter _ rules({ required:true,type:mobile})这么一行代码便可在页面中实现验证了。

  首先看一下实现效果

  一、新建一个validate.js文件:

  该文档中放所需的一些验证规则,下面直接看代码:

  /**

  *由贾晨攀于16/11/18创作。

  **/

  导出函数isvalidUsername (str) {

  const valid_map=[admin , editor]

  返回有效地图。(字符串的索引。trim())=0

  }

  //非负数

  导出函数没有funnumber(str){

  常量=/^\d。{0,1}\d ){0,0}$/

  返回注册测试(str)

  }

  //手机号

  导出函数isvalidMobile (str) {

  常量=/^1(34578)\d{9}$/

  返回注册测试(str)

  }

  //中文、英文、数字

  导出函数正则表达式(字符串){

  常量=/^[\u4e00-\u9fa5_a-za-z0-9]$/

  返回注册测试(str)

  }

  /* 合法uri */

  导出函数validateURL (textval) {

  const urlregex=/^(https?ftp):\/\/([a-zA-Z0-9 .(:[a-zA-Z0-9 .%$-] )*@)*((25[0-5]2[0-4][0-9]1[0-9]{2}[1-9][0-9]?)(\.(25[0-5]2[0-4][0-9]1[0-9]{2}[1-9]?[0-9]){ 3 } ([a-zA-Z0-9-]).)*[a-zA-Z0-9-].(com edu gov int mil net org biz arpa info name pro aero coop museum [a-zA-Z]{ 2 })(:[0-9])*(\/($ [a-zA-Z0-9 .\\ %$#=~_-] ))*$/

  返回urlregex.test(textval)

  }

  /* 小写字母*/

  导出函数validateLowerCase (str) {

  const reg=/^[a-z] $/

  返回注册测试(str)

  }

  /* 大写字母*/

  导出函数验证大写(字符串){

  const reg=/^[A-Z] $/

  返回注册测试(str)

  }

  /* 大小写字母*/

  导出函数有效字母(字符串){

  const reg=/^[A-Za-z] $/

  返回注册测试(str)

  }

  /**

  *验证电子邮件

  * @param电子邮件

  * @返回{boolean}

  */

  二、新建filter_rules.js文件:

  该文档放验证的回调函数和验证字段。

  附代码:

  从" @/utils/validate "导入{ isvalidMobile,regexn,noFuNumber }

  导出默认值{

  安装(Vue) {

  /**

  * 注意:定义类型规则时不用做非空验证

  * 只需要传入必填:真即可

  * */

  /* 验证非负数*/

  const isnoFuNumber=(规则,值,回调)={

  如果(值!=空值!==) {

  如果(!noFuNumber(值)){

  回调(新错误(请输入非负数的数字!))

  }否则{

  回调()

  }

  }否则{

  回调()

  }

  }

  /* 验证手机号*/

  const isvalidateMobile=(规则,值,回调)={

  如果(值!=空值!==) {

  如果(!isvalidMobile(value)) {

  回调(新错误(请输入正确的手机号码!))

  }否则{

  回调()

  }

  }否则{

  回调()

  }

  }

  /* 含有非法字符(只能输入中文、英文、数字) */

  const isvalidateRegexn=(rule,value,callback)={

  如果(值!=空值!==) {

  如果(!正则表达式(值)){

  回调(新错误(含有非法字符(只能输入中文、英文、数字)!))

  }否则{

  回调()

  }

  }否则{

  回调()

  }

  }

  /* 请输入正整数*/

  //const isvalidateInteger=(rule,value,callback)={

  //如果(值!=空值!=) {

  //如果(!整数(值)){

  //回调(新错误(请输入正整数!))

  //}其他{

  //回调()

  //}

  //}

  //否则{

  //callback();

  //}

  //}

  /**

  * 参数项目

  *要求为真必填项

  * maxLength字符串的最大长度

  *最小值和最大必须同时给最小最大类型=数量

  *类型手机号可动的

  * 邮箱电子邮件

  * 网址全球资源定位器(统一资源定位器)

  * 各种自定义类型定义在src/utils/验证中持续添加中.

  * */

  vue。原型。filter _ rules=function(item){

  let rules=[]

  if (item.required) {

  rules.push({必填:真的,消息: 该输入项为必填项!,触发器:模糊 })

  }

  if (item.maxLength) {

  rules.push({ min: 1,max: item.maxLength,message:最多输入 item.maxLength 个字符!,触发器:模糊 })

  }

  if (item.min item.max) {

  rules.push({ min: item.min,max: item.max,message:字符长度在 item.min 至 item.max 之间!,触发器:模糊 })

  }

  if (item.type) {

  let type=item.type

  开关(类型){

  //case email :

  //rules.push({ type: email ,message:请输入正确的邮箱地址,触发器:模糊,改变 })

  //break是nofnumber

  案例“活动订单”:

  规则。push({ validator:isnofnumber,trigger: blur })

  破裂

  案例"移动":

  规则。push({ validator:is validate mobile,trigger: blur })

  破裂

  案例"名称":

  规则。push({ validator:isvalidateRegexn,消息:请输入正确的用户姓名,触发器:模糊 })

  破裂

  大小写"密码":

  规则。push({ validator:isvalidateRegexn,消息:请输入密码,触发器:模糊 })

  破裂

  案例"组织名称":

  规则。push({ validator:isvalidateRegexn,消息:机构名称不能包含特殊字符,触发器:模糊 })

  破裂

  默认值:

  rules.push({})

  破裂

  }

  }

  退货规则

  }

  }

  }

  三、在页面中引入:

  从" @/utils/filter_rules "导入验证

  四、在页面中使用验证:

  需将验证规则写在埃尔-表单-项目标签内。

  需要注意的是:

  这三个地方的名称要书写一致。

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: