整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

值得推荐,Vue.js基于模板的表单验证框架,非常实

值得推荐,Vue.js基于模板的表单验证框架,非常实用

vee-validate是Vue.js的基于模板的验证框架,可以验证输入并显示错误。基于模板,只需为每个输入值更改时指定应使用哪种验证器。系统会在支持40多种语言环境的情况下自动生成错误。现成的规则很多。该插件的灵感来自PHP Framework Laravel的验证!这个组件总结为一句话就是:在前端验证里面实现了 laravel 的表单验证,这种实现是指,语法和思想的实现!

  • 简单

基于模板的验证又易于设置

  • 灵活

验证HTML输入和Vue组件,生成本地化错误,可扩展

  • 可配置的

不需要麻烦的配置,都是可选的







Github地址

仓库:https://github.com/logaretm/vee-validate

文档:https://logaretm.github.io/vee-validate/

特性简介

  • 基于模板的验证既亲切又易于设置。
  • i18n 支持,并且支持40多种语言的本地化错误提示
  • 异步和自定义规则支持
  • 使用Typescript编写
  • 没有其它依赖项


  • //组件本地化
    import ar from 'vee-validate/dist/locale/ar';
    import VeeValidate, { Validator } from 'vee-validate';
    
    Validator.localize('ar', ar);
    Vue.use(VeeValidate);

    安装和使用

    • 安装

    当然是使用我们熟悉的npm,或者yarn

    # 使用npm安装
    npm install vee-validate --save
    
    # 使用yarn安装
    yarn add vee-validate
    • 使用

    注册ValidationProvider组件并添加所需的规则:

    import { ValidationProvider, extend } from 'vee-validate';
    import { required } from 'vee-validate/dist/rules';
    
    extend('required', {
      ...required,
      message: 'This field is required'
    });
    
    new Vue({
      el: '#app',
      components: {
        ValidationProvider
      },
      data: ()=> ({
        value: ''
      })
    });

    用ValidationProvider包住输入:

    <validation-provider rules="required" v-slot="{ errors }">
      <input v-model="value" name="myinput" type="text" />
      <span>{{ errors[0] }}</span>
    </validation-provider>

    下面截图是官方结合Element和Antd的示例,感兴趣的小伙伴可以直接查看官方示例,一共提供了Element UI、Vuetify、Quasar、BootstrapVue、Buefy、Antd Design的在线范例:



    PS:一些高级的API文档可以直接查看官方文档,英文不好的小伙伴可以直接借助浏览器翻译,同样能看懂:



    总结

    Vue是目前前端框架中非常火热的框架,基于此,在Vue的基础上诞生的框架也是丰富多彩,相信也有很多小伙伴也和我一样比较喜爱Vue这一个框架,而且在不久的将来Vue也将发布3.0版本,届时将带来更多丰富的用法,拭目以待!

    vee-validate是Vue.js的基于模板的验证框架,可以验证输入并显示错误。基于模板,只需为每个输入值更改时指定应使用哪种验证器。系统会在支持40多种语言环境的情况下自动生成错误。现成的规则很多。该插件的灵感来自PHP Framework Laravel的验证!这个组件总结为一句话就是:在前端验证里面实现了 laravel 的表单验证,这种实现是指,语法和思想的实现!

    • 简单

    基于模板的验证又易于设置

    • 灵活

    验证HTML输入和Vue组件,生成本地化错误,可扩展

    • 可配置的

    不需要麻烦的配置,都是可选的







    Github地址

    仓库:https://github.com/logaretm/vee-validate
    
    文档:https://logaretm.github.io/vee-validate/

    特性简介

  • 基于模板的验证既亲切又易于设置。
  • i18n 支持,并且支持40多种语言的本地化错误提示
  • 异步和自定义规则支持
  • 使用Typescript编写
  • 没有其它依赖项


  • //组件本地化
    import ar from 'vee-validate/dist/locale/ar';
    import VeeValidate, { Validator } from 'vee-validate';
    
    Validator.localize('ar', ar);
    Vue.use(VeeValidate);

    安装和使用

    • 安装

    当然是使用我们熟悉的npm,或者yarn

    # 使用npm安装
    npm install vee-validate --save
    
    # 使用yarn安装
    yarn add vee-validate
    • 使用

    注册ValidationProvider组件并添加所需的规则:

    import { ValidationProvider, extend } from 'vee-validate';
    import { required } from 'vee-validate/dist/rules';
    
    extend('required', {
      ...required,
      message: 'This field is required'
    });
    
    new Vue({
      el: '#app',
      components: {
        ValidationProvider
      },
      data: ()=> ({
        value: ''
      })
    });

    用ValidationProvider包住输入:

    <validation-provider rules="required" v-slot="{ errors }">
      <input v-model="value" name="myinput" type="text" />
      <span>{{ errors[0] }}</span>
    </validation-provider>

    下面截图是官方结合Element和Antd的示例,感兴趣的小伙伴可以直接查看官方示例,一共提供了Element UI、Vuetify、Quasar、BootstrapVue、Buefy、Antd Design的在线范例:



    PS:一些高级的API文档可以直接查看官方文档,英文不好的小伙伴可以直接借助浏览器翻译,同样能看懂:



    总结

    Vue是目前前端框架中非常火热的框架,基于此,在Vue的基础上诞生的框架也是丰富多彩,相信也有很多小伙伴也和我一样比较喜爱Vue这一个框架,而且在不久的将来Vue也将发布3.0版本,届时将带来更多丰富的用法,拭目以待!

    篇介绍了表单的使用,表单有很多控件,比如输入框,密码框、文本域,按钮等。按类型可分如下:

    • 输入类控件
    • 菜单类控件

    输入类组件 —— input

    此类控件有很多种类型,使用<input type="类型">语法,常见类型如下:

    type 值

    含义

    text

    文字字段

    password

    密码域,用户看不到明文,以*代替

    radio

    单选按钮

    checkbox

    多选按钮

    button

    普通按钮

    submit

    提交按钮

    reset

    重置按钮

    image

    图像域,用图像作为背景的提交按钮

    hidden

    隐藏域,不可见的输入框

    file

    文本域,用于上传文件等非文本数据

    文本输入框和密码框

    除了显示形式不一样,其它属性一样,有以下属性:

    • name —— 定义文字字段名称,用于和其它控件区别,不能包含特殊字符,也不可使用html 标签名称
    • maxlength —— 定义文本框可输入字符最大长度
    • size —— 定义文本框在页面中显示的长度
    • vaule —— 定义文本框中默认的值

    如下是文本输入框和密码框制作一个登录表单

    html代码:

    <!DOCTYPE html>
    <html>
    <body>
    <h1>用户登录</h1>
    <form action="/demo/html/action_page.php">
      <label for="fname">用户名:</label><br>
      <input type="text" id="username" name="username" value=""><br>
      <label for="lname">密码:</label><br>
      <input type="password" id="pwsd" name="pwsd" value=""><br><br>
      <input type="submit" value="提交">
    </form> 
    </body>
    </html>

    显示效果:

    HTML5 输入类型

    除了以上几种类型,HTML5 还增加了多个新的输入类型:

    • color
    • date
    • datetime
    • datetime-local
    • email
    • month
    • number
    • range
    • search
    • tel
    • time
    • url
    • week

    如下代码:

    <!DOCTYPE html>
    <html>
    <body>
    <form action="/demo/demo_form.asp">
      数字类型(1 到 5 之间):
      <input type="number" name="quantity" min="1" max="5">
      IE9 及早期版本不支持 type="number"。<br>
      color 选择颜色:
      <input type="color" name="color"><br>
       生日:
      <input type="date" name="bday"><br>
      年月:
      <input type="month" name="bdaymonth"><br>
      年周:
      <input type="week" name="week_year"><br>
      时间:
      <input type="time" name="usr_time"><br>
      一定范围
       <input type="range" name="points" min="0" max="10"><br>
       E-mail:
      <input type="email" name="email">
      能够在被提交时自动对电子邮件地址进行验证<br>
      搜索:
      <input type="search" name="googlesearch"><br>
      电话:
      <input type="tel" name="usrtel">
      目前只有 Safari 8 支持 tel 类型。<br>
      url:
      <input type="url" name="url">
      提交时能够自动验证 url 字段<br>
      <input type="submit">
    </form>
    </body>
    </html>

    效果如下:

    单选和多选按钮

    使用 type=“radio” 和 type=“checkbox” 定义是单选还是多选,除了name和value属性外,单选和多选都有一个 checked属性定义默认选择的项,checked=“true”指选中那个选项,表单会将 checked=“true” 的选型值传递给后台。

    如下实例:

    <!DOCTYPE html>
    <html>
    <body>
    <h4>单选和多选</h4>
    <form action="/demo/demo_form.asp">
    水果:
    <input type="radio" name="shuiguo" value="banner" checked> 香蕉
    <input type="radio" name="shuiguo" value="apple"> 苹果
    <br><br>
    省份:
    <input type="checkbox" name="shengfen" value="shannxi" checked> 陕西
    <input type="checkbox" name="shengfen" value="sanxi"> 山西
    <input type="checkbox" name="shengfen" value="gdong"> 广东
    <br><br>
    <input type="submit">
    </form> 
    </body>
    </html>

    显示效果:

    单选和多选传递给后台的数据是不一样的,如下会看到地址栏中的数据,多选会发送多个值,后台将会获取一个数组形式的数据。

    /demo/demo_form.asp?shuiguo=banner&shengfen=shannxi&shengfen=sanxi

    普通按钮、提交按钮、重置按钮

    普通按钮:type=“button”,一般配合脚本使用,语法如下:

    <input type="button" name="名称" value="按钮值" onclick="脚本程序" />

    value 值就是按钮在页面显示的文字,onclick属性定义了脚本事件,这里指单击按钮时所进行的处理。

    如下示例:

    <!DOCTYPE html>
    <html>
    <body>
    <form>
     <input type="button" value="普通按钮">
    <input type="button" value="打开窗口" onclick="window.open()">
    <input type="button" value="您好" onclick="alert('您好')">
      </form>
    </body>
    </html>
    

    单击您好按钮

    提交按钮:type=“submit”,用于提交表单内容,是一种特殊按钮。

    如刚才的登录表单,提交后会返回结果:

    重置按钮:type="reset",用于清除表单数据,也是一种特殊按钮。

    输入数据

    点击重置按钮后,表单数据清空

    重置清空数据

    HTML5 按钮

    除了使用input定义按钮,还可以使用 html5 新增的<button> 标签定义按钮,button 使用语法如下:

    <form action="/demo/html/action_page.php">
    <button type="button">普通按钮</button>
    <button type="submit">提交按钮</button>
    </form> 

    其它输入类控件

    隐藏域 —— hidden
    文件域 —— file

    如下示例:

    <form action="/demo/html/action_page.php">
      <label for="fname">隐藏域:</label>
      <input type="hidden" id="hidden" name="hidden" value=""><br>
      <label for="lname">文件域:</label>
      <input type="file" id="file" name="file" value=""><br>
      <input type="submit" value="提交">
    </form> 

    显示效果

    可以看到,隐藏域在页面中不显示,单击文件域选择文件按钮可以选择文件,比如word文件,电子表格文件等,会以非文本方式传送到后台的,常用来实现文件上传功能。

    文本域 —— textarea

    除了input 类型的控件,还有文本域 textarea ,一种特殊的文本框,它与input 文本输入框的区别就是可以输入多行文字,input 文本输入框是单行的无法输入多行文字。

    如下示例:

    <p>textarea 元素定义多行输入字段。</p>
    <form action="/demo/html/action_page.php">
      <textarea name="message" rows="10" cols="30">The cat was playing in the garden.</textarea>
      <br><br>
      <input type="submit">
    </form>

    效果如下:

    rows 属性定义文本域的高度是几行,cols 定义文本域宽度占几列,比如上面定义了高10行宽30列的文本域。

    下拉菜单和多选列表

    下拉菜单作用和单选按钮类似,只不过它更加节省空间,当要选择的选型很多时,就不适合使用radio空间,所以当选项很多的时候,使用下拉菜单,语法如下:

    <select name="名称">
    <option value="选项值1" selected>选项1</option>
    <option value="选项值2">选项3</option>
    更多option......
    </select>

    多选列表和多选按钮类似,一样为了节省空间,当数据选项比较多时,使用多选列表,语法如下:

    <select name="名称" size="可看见的列表项数" multiple>
    <option value="选项值1" selected>选项1</option>
    <option value="选项值2">选项3</option>
    更多option......
    </select>

    多选比下拉菜单不同之处是多了一个multiple属性,定义多选的,且表现形式也不一样,不是下拉而是一个列表。

    如下代码:

    <!DOCTYPE html>
    <html>
    <body>
    <form action="/demo/demo_form.asp">
    下拉菜单:<br>
    <select name="cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="fiat">Fiat</option>
    <option value="audi">Audi</option>
    </select>
    <br>
    多选列表:<br>
    <select name="cars" size="3" multiple>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="fiat">Fiat</option>
    <option value="audi">Audi</option>
    </select>
    <br><br>
    <input type="submit">
    </form>
    </body>
    </html>

    显示效果:

    这里需要注意的是,多选列表多选时需要按住ctrl键同时鼠标单击选择才能多选,效果如下:

    到这里,已介绍了大部分的表单控件,现在你可以使用他们制作自己的表单,表单通常在动态网站中使用,这为以后制作动态网站打下基础。

    还有许多属性没有讲到,比如html5新增的一些属性和功能,可自行参考 w3cshool 等网站学习,感谢关注,学习愉快!

    上篇 : 前端入门——html 表单

    下篇: 前端入门 —— 网页中使用窗口框架