最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue表單驗(yàn)證插件Vue Validator使用方法詳解

 更新時(shí)間:2021年08月27日 10:52:43   作者:好JSER  
這篇文章主要為大家詳細(xì)介紹了Vue表單驗(yàn)證插件Vue Validator使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Vue-validator 是Vue的表單驗(yàn)證插件,供大家參考,具體內(nèi)容如下

Vue版本: 1.0.24
Vue-validator版本: 2.1.3

基本使用

<div id="app">
 <validator name="validation">
  <form novalidate>
   <div class="username-field">
    <label for="username">username:</label>
    <input type="text" id="username" v-validate:username="['required']" />
   </div>
   <div class="comment-filed">
    <label for="comment">comment:</label>
    <input type="text" id="comment" v-validate:comment="{maxlength: 256}" />
   </div>
   <div class="errors">
    <p v-if="$validation.username.required">請(qǐng)輸入你的名字</p>
    <p v-if="$validation.comment.maxlength">您的評(píng)論太長了</p>
   </div>
   <input type="submit" value="send" v-if="$validation.valid" />
  </form>
 </validator>
</div>


<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">

 new Vue({
  el: '#app'
 });

</script>

將要驗(yàn)證的表單包裹在validator自定義元素指令中,而在要驗(yàn)證的表單控件元素的 v-validate 屬性上綁定相應(yīng)的校驗(yàn)規(guī)則。

驗(yàn)證結(jié)果會(huì)保存在組建實(shí)例的 $validation 屬性下。 $validation 是由 validator 元素和 name 屬性和 $ 前綴組件

驗(yàn)證結(jié)果結(jié)構(gòu)

{
 // 表單整體驗(yàn)證
 "valid": false, // 字段校驗(yàn)是否通過 
 "invalid": true, // valid 取反
 "touched": false, // 校驗(yàn)字段所在元素獲得通過焦點(diǎn)時(shí)返回true,否則返回false
 "untouched": true, // touched 取反
 "modified": false, // 當(dāng)元素值與初始值不同時(shí)返回true,否則返回false
 "dirty": false, // 字段值改變過至少一次返回true,否則返回false 
 "pristine": true, // dirty 取反
 // 字段單一驗(yàn)證
 "username": {
  "required": true,
  "modified": false,
  "pristine": true,
  "dirty": false,
  "untouched": true, 
  "touched": false,
  "invalid": true,
  "valid": false
 },
 "comment": {
  "maxlength": false,
  "modified": false,
  "pristine": true,
  "dirty": false,
  "untouched": true,
  "touched": false,
  "invalid": false,
  "valid": true
 }
}

校驗(yàn)結(jié)果由兩部分組成。表單整體校驗(yàn)結(jié)果和單個(gè)字段校驗(yàn)結(jié)果。

驗(yàn)證器語法

v-validate 指令語法:

v-validate[:field]=”array literal | object literfal | binding”

校驗(yàn)字段名field

field用來標(biāo)識(shí)校驗(yàn)字段,之后可以用該字段來引用校驗(yàn)結(jié)果

v-validate 指令用來定義校驗(yàn)規(guī)則,其值可以是數(shù)組字面量,對(duì)象字面量,組件實(shí)例數(shù)組屬性名。

數(shù)組字面量

當(dāng)校驗(yàn)器不需要額外參數(shù)時(shí),可以使用數(shù)組字面量形式,如 required 校驗(yàn)器,只要出現(xiàn)就帶I表該校驗(yàn)器所在元素是必填項(xiàng)。

<div id="app">
 <validator name="validation">
  <form novalidate>
   Zip: <input type="text" v-validate:zip="['required']" /><br />
   <div>
    <span v-if="$validation.zip.required">郵政編碼是必填項(xiàng)</span>
   </div>
  </form>
 </validator>
</div>

對(duì)象字面量

對(duì)象字面量語法適合需要額外參數(shù)的校驗(yàn)器。如限制輸入長度的校驗(yàn)器 minlength,需要說明限制長度多少。

<div id="app">
 <validator name="validation">
  <form novalidate>
   ID: <input type="text" v-validate:id="{ required:true, minlength: 3, maxlength: 16 }" />
   <br />
   <div>
    <p v-if="$validation.id.required">ID不能為空</p>
    <p v-if="$validation.id.minlength">你的ID名字太短</p>
    <p v-if="$validation.id.maxlength">你的ID名字太長</p>
   </div>
   <input type="submit" value="send" v-if="$validation.valid" />
  </form>
 </validator>
</div>

還可以用 對(duì)象字面量語法通過 rule 字段來自定義驗(yàn)證規(guī)則

<div id="app">
 <validator name="validation">
  <form novalidate>
   ID: <input type="text" v-validate:id="{minlength: {rule: 3}, required: true, maxlength: {rule: 16}}" />
   <br />
   <div>
    <p v-if="$validation.id.required">ID不能為空</p>
    <p v-if="$validation.id.minlength">你的ID名字太短</p>
    <p v-if="$validation.id.maxlength">你的ID名字太長</p>
   </div>
   <input type="submit" value="send" v-if="$validation.valid" />
  </form>
 </validator>
</div>

實(shí)例數(shù)據(jù)屬性

v-validate 的值可以是組建實(shí)例的數(shù)據(jù)屬性。這樣可以用來動(dòng)態(tài)綁定校驗(yàn)規(guī)則。

<div id="app">
 <validator name="validation">
 <form novalidate>
  ID: <input type="text" v-validate:id="rules" /><br />
  <div>
   <p v-if="$validation.id.required">不能為空</p>
   <p v-if="$validation.id.minlength">你的ID太短</p>
   <p v-if="$validation.id.maxlength">你的ID太長</p>
  </div>
 </form>
 </validator>
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">

 new Vue({
  el: '#app',
  data: {
   rules: {
    required: true,
    minlength: 3,
    maxlength: 16
   }
  }
 });
 
</script>

內(nèi)置校驗(yàn)規(guī)則

vue-validator 內(nèi)置一些常用的驗(yàn)證規(guī)則:

  • required — 輸入值不能為空
  • pattern — 必須匹配pattern表示的正則表達(dá)式
  • minlength — 輸入值長度不能小于minlength表示的值
  • maxlength — 輸入的值不能大于maxlength表示的值
  • min — 輸入值不能小于min表示的值
  • max — 輸入值不能大于max表示的值

與v-model同時(shí)使用

vue-validator會(huì)自動(dòng)校驗(yàn)通過v-model動(dòng)態(tài)設(shè)置的值。

<div id="app">
 <validator name="validation">
  <form novalidate>
   message: <input type="text" v-model="msg" v-validate:message="{required: ture, minlength: 8}" />
   <br />
   <p v-if="$validation.message.required">message不能為空</p>
   <p v-if="$validation.message.minlength">message輸入太長位數(shù)</p>
  </form>
 </validator>
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">

 var vm = new Vue({
  el: '#app',
  data: {
   msg: ''
  }
 });
 
 setTimeout(function () {
  vm.msg = 'hello world!';
 }, 2000);
 
</script>

重置校驗(yàn)結(jié)果

通過在Vue組件實(shí)例上調(diào)用$resetValidation();方法來動(dòng)態(tài)重置校驗(yàn)結(jié)果。

<div id="app">
 <validator name="validation">
  <form novalidate>
   <div class="username-field">
    <label for="username">username:</label>
    <input type="text" id="username" v-validate:username="['required']" />
   </div>
   <div class="comment-filed">
    <label for="comment">comment:</label>
    <input type="text" id="comment" v-validate:comment="{maxlength: 256}" />
   </div>
   <div class="errors">
    <p v-if="$validation.username.required">用戶名不能為空</p>
    <p v-if="$validation.comment.maxlength">輸入文字超過256個(gè)</p>
    <input type="submit" value="send" v-if="$validation.valid" />
    <button type="button" @click="onReset">Reset Validation</button>
   </div>
   <pre>{{$validation | json}}</pre>
  </form>
 </validator>
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
 
 new Vue({
  el: '#app',
  methods: {
   onReset: function () {
    this.$resetValidation();
   }
  }
 });
 
</script>

復(fù)選框checkbox

<div id="app">
 <validator name="validation">
  <form novalidate>
   <h1>調(diào)查</h1>
   <fieldset>
    
    <legend>請(qǐng)選擇水果</legend>
    <input type="checkbox" id="apple" value="apple" v-validate:fruits="{
     required: { rule: true, message: requiredErrorMsg },
     minlength: { rule: 1, message: minlengthErrorMsg },
     maxlength: { rule: 2, message: maxlengthErrorMsg }
     }" />
     
    <label for="apple">Apple</label>
    <input type="checkbox" id="orange" value="orange" v-validate:fruits />
    <label for="orange">Orange</label>
    <input type="checkbox" id="grape" value="grape" v-validate:fruits />
    <label for="grape">Grape</label>
    <input type="checkbox" id="banana" value="banana" v-validate:fruits />
    <label for="banana">Banana</label>
    
    <ul class="errors">
     <li v-for="msg in $validation.fruits">
      <p>{{msg | json}}</p>
     </li>
    </ul>
   </fieldset>
  </form>
 </validator>
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
 
 new Vue({
  el: '#app',
  computed: {
   requiredErrorMsg: function () {
    return '請(qǐng)選擇水果';
   },
   minlengthErrorMsg: function () {
    return '請(qǐng)選擇至少1個(gè)水果!';
   },
   maxlengthErrorMsg: function () {
    return '請(qǐng)選擇最多2個(gè)水果!';
   }
  }
 });
 
</script>

下拉類表select

<div id="app">
 
 <validator name="validation">
  <form novalidate>
   <select v-validate:lang="{required: true}">
    <option value="">請(qǐng)選擇語言</option>
    <option value="javascript">javascript</option>
    <option value="php">php</option>
    <option value="node">node</option>
   </select>
   <div class="errors">
    <p v-if="$validation.lang.required">不能為空!</p>
   </div>
  </form>
 </validator>
 
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
 
 new Vue({
  el: '#app'
 });
 
</script>

校驗(yàn)狀態(tài)class

各校驗(yàn)狀態(tài)都有其對(duì)應(yīng)的class(默認(rèn)) 也可以自定義校驗(yàn)狀態(tài)class

<validator name="validation" :classes="{touched: 'touehc-validator', dirty: 'dirty-validator'}">
 <label for="username">username</label>
 <<input type="text" id="username" :classes="{valid: 'valid-username', invalid: 'invalid-username'}" v-validate:username="{required: {rule: true, message: 'required you name!'}}">
</validator>
<!-- classes屬性只能在validator元素或應(yīng)用了v-validate的元素上使用有效 -->

分組校驗(yàn)

vue-validator支持分組校驗(yàn)。例如重復(fù)密碼功能。

<div id="app">
 <validator name="validation" :groups="['passwordGroup']">
  <form novalidate>
   username: <input type="text" v-validate:username="['required']" /><br />
   password: <input type="password" v-validate:password="{ minlength: 8, required: true }" group="passwordGroup" /><br />
   comfirm password: <input type="password" v-validate:password-comfirm="{minlength: 8, required: true}" group="passwordGroup" />
   <div class="errors">
    <p v-if="$validation.username.required">用戶名不能為空</p>
    <p v-if="$validation.password.required">密碼不能為空</p>
    <p v-if="$validation.password.minlength">密碼不能少于8位</p>
    <p v-if="$validation.password-comfirm.required">重復(fù)密碼不能為空</p>
    <p v-if="$validation.password-comfirm.minlength">密碼不能少于8位</p>
    <p v-if="$validation.passwordGroup.valid">密碼不一致</p>
   </div>
  </form>
 </validator>
</div>

<script src="http://cdn.bootcss.com/vue/1.0.24/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="http://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
 
 new Vue({
  el: '#app'
 });
 
</script>

本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。

關(guān)于vue.js組件的教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 優(yōu)化Vue中date format的性能詳解

    優(yōu)化Vue中date format的性能詳解

    這篇文章主要介紹了優(yōu)化Vue中date format的性能詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • vue?的全選組件封裝你知道多少

    vue?的全選組件封裝你知道多少

    這篇文章主要為大家詳細(xì)介紹了vue的全選組件封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 深入理解Vue3響應(yīng)式原理

    深入理解Vue3響應(yīng)式原理

    響應(yīng)式就是當(dāng)對(duì)象本身(對(duì)象的增刪值)或者對(duì)象屬性(重新賦值)發(fā)生變化時(shí),將會(huì)運(yùn)行一些函數(shù),最常見的就是render函數(shù),下面這篇文章主要給大家介紹了關(guān)于Vue3響應(yīng)式原理的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue如何給組件動(dòng)態(tài)綁定不同的事件

    vue如何給組件動(dòng)態(tài)綁定不同的事件

    這篇文章主要介紹了vue如何給組件動(dòng)態(tài)綁定不同的事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue動(dòng)態(tài)組件表格的實(shí)現(xiàn)代碼

    Vue動(dòng)態(tài)組件表格的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Vue動(dòng)態(tài)組件表格的實(shí)現(xiàn)代碼,包括框架結(jié)構(gòu)組件,文中還給大家封裝了幾個(gè)組件,有按鈕組件、圖片組件、滑動(dòng)開關(guān),結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • 使用vite兼容低端瀏覽器配置

    使用vite兼容低端瀏覽器配置

    這篇文章主要介紹了使用vite兼容低端瀏覽器配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue中如何使用elementUI表格動(dòng)態(tài)行合并

    vue中如何使用elementUI表格動(dòng)態(tài)行合并

    這篇文章主要介紹了vue中如何使用elementUI表格動(dòng)態(tài)行合并,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue如何實(shí)現(xiàn)點(diǎn)擊選中取消切換

    vue如何實(shí)現(xiàn)點(diǎn)擊選中取消切換

    這篇文章主要介紹了vue實(shí)現(xiàn)點(diǎn)擊選中取消切換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 淺談在vue項(xiàng)目中如何定義全局變量和全局函數(shù)

    淺談在vue項(xiàng)目中如何定義全局變量和全局函數(shù)

    本篇文章主要介紹了淺談在vue項(xiàng)目中如何定義全局變量和全局函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue-ls vue本地儲(chǔ)存的實(shí)例講解

    vue-ls vue本地儲(chǔ)存的實(shí)例講解

    這篇文章主要介紹了vue-ls vue本地儲(chǔ)存的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評(píng)論

伊金霍洛旗| 墨竹工卡县| 东台市| 绥江县| 游戏| 自治县| 深圳市| 宿州市| 阿瓦提县| 原阳县| 乌恰县| 阜阳市| 陕西省| 芦溪县| 南漳县| SHOW| 西乡县| 长海县| 阿图什市| 房山区| 和硕县| 保亭| 曲水县| 灵寿县| 调兵山市| 宜丰县| 壶关县| 乌审旗| 庄浪县| 乌苏市| 隆回县| 龙江县| 虞城县| 肃宁县| 广丰县| 辽源市| 郎溪县| 天峻县| 丰镇市| 柯坪县| 龙陵县|