温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue怎么实现表单校验

发布时间:2021-09-29 09:01:00 来源:亿速云 阅读:155 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“vue怎么实现表单校验”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue怎么实现表单校验”这篇文章吧。

一、安装并使用

首先,在你的vue项目中进行安装:

npm install --save vue-input-check

安装完成以后引入并注册:

import inputCheck from 'vue-input-check';

// 安装
Vue.use(inputCheck);

然后,我们就可以在表单中使用了:

<form autocomplete="off" novalidate>
    <input v-model='key' name='输入框名称' v-input-check='[key,"validate-express"]'/>
    <!-- 可以有任意多的输入框 -->
</form>

如你所见,上述的v-input-check就是我们对每个输入框定义规则的地方,值是一个数组,第一个值就是输入框的v-model,第二个值是一个字符串,语法如下:

validate-express="val1:param1:param2|val2|valu3:param1"

不同的规则使用|分割,需要传递参数的规则的参数通过:分割。我们来看几个例子:

v-input-check='[key,"required|maxLength:10|regexp:^\\d{1,5}$"]'
    v-input-check='[key,"required"]'

目前可选的内置规则如下:

    required:boolean:表示必输,有一个可选参数,表示是否必输,默认true
    maxLength:num:最大长度
    minLength:num:最小长度
    regexp:str:正则表达式

二、获取校验结果

页面的规则定义好了以后,你有两中方式获取校验的结果。

1.JS的方式

直接使用下列方法启动检查即可:

this.$validateCheck(formnode, callback, errorback);

此对象包含三个参数:

  •     formnode:需要校验的表单结点,必输

  •     callback:表单合法回调,可选

  •     errorback:表单非法回调,可选

此外,错误回调有一个形参,数据格式为:

{
    "$el":错误的输入框结点
    "$error":当前输入框的第一个错误提示信息
}

2.HTML的方式

提供这种方式的目的是为了可以在页面实时反馈当前表单的输入情况。

首先,在表单上,你可以通过判断class包含v-valid或者v-invalid来判断表单是否合法。

同样的,添加指令v-input-check的地方同样可以这样判断该处是否合法,而对于更具体的错误细节,比如必输非法,class就会像这样v-invalid-required v-invalid

三、自定义校验规则

在大部分情况下,我们还可能需要添加新的校验规则,毕竟默认的往往不足以满足所有业务情况:

Vue.use(inputCheck, {

    // 自定义校验规则
    validate: [{

        // 规则的名称
        name: "XXX",

        // 校验方法,返回true表示合法,false表示非法
        // 需要注意的是,这个函数除了el和val一定存在外,余下的参数是使用的时候通过```:```分割传递的,可以有任意多个
        // 比如:``` required:true|phone:parm1:param2 ```
        test: function (el, val, ...) {
            return true|false;
        },

        // 非法提示信息,应该返回一个字符串
        message: function (el, name) {
            return "XXX";
        }
    },
    // 校验规则可以有多条
    ......
    ]

});

以上是“vue怎么实现表单校验”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue
AI