Vuejs——(6)Vuejs與form元素

 

目錄(?)[+]vue

 

資料來於官方文檔:ajax

http://cn.vuejs.org/guide/forms.html
json

本文是在官方文檔的基礎上,更加細緻的說明,代碼更多更全。數組

簡單來講,更適合新手閱讀app

 

 

 

 

(二十三)表單綁定ide

①常見綁定方法:

【1】文本輸入框綁定;ui

【2】textarea綁定(相似【1】);spa

【3】radio選中值綁定;.net

【4】checkbox綁定(自動捆綁數組,無需name);

【5】select綁定;

【6】select multiple多選選中框綁定;

【7】動態綁定(以上不一樣類型但同一個值能夠互動);

【8】checkbox選中和未選中賦予不一樣的值(主要是針對不選中狀態);

【9】checkbox,radio,select選中狀態的值動態綁定(主要是指值動態綁定對象或者是vm實例的屬性,例如data裏的某個屬性,或者是computed的某個值);

 

如代碼:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <div id="app">  
  2.     <input type="text" v-model="text"/>  
  3.     <div>{{text}}</div>  
  4.     <div>——————————————</div>  
  5.     <textarea style="width:200px;height:100px;" v-model="textarea"></textarea>  
  6.     <div>{{textarea}}</div>  
  7.     <div>——————————————</div>  
  8.     <label><input type="checkbox" v-model="checkbox"/>左邊選中右邊則爲true:{{checkbox}}</label>  
  9.     <div>——————————————</div>  
  10.     <label><input type="checkbox" value="firstCheckbox" v-model="checkboxes">firstCheckbox</label><br/>  
  11.     <label><input type="checkbox" value="secondCheckbox" v-model="checkboxes">secondCheckbox</label><br/>  
  12.     <label><input type="checkbox" value="thirdCheckbox" v-model="checkboxes">thirdCheckbox</label><br/>  
  13.     <div>以上選中的value狀況爲:{{checkboxes}}</div>  
  14.     <div>以上選中的value狀況爲(以json格式顯示,這裏使用了json過濾器):{{checkboxes|json}}</div>  
  15.     <div>——————————————</div>  
  16.     <label><input type="radio" value="A" v-model="radio"/>value = A</label><br>  
  17.     <label><input type="radio" value="B" v-model="radio"/>value = B</label><br>  
  18.     <div>{{radio}}</div>  
  19.     <div>注意,這裏的v-model的值應該被註冊到data裏面,不然會紅字警告(事實上,全部的都應該也這麼作)</div>  
  20.     <div>——————————————</div>  
  21.     <select v-model="select">  
  22.         <option>默認值,option不設value</option>  
  23.         <option value="B">value的值設爲B</option>  
  24.         <option selected value="C">默認選擇這個,value設爲C</option>  
  25.     </select>  
  26.     <div>{{select}}</div>  
  27.     <div>一樣,這裏不註冊也會被報錯</div>  
  28.     <div>——————————————</div>  
  29.     <div>如下是select的多選,按住ctrl能夠連續選,按住shift選擇區間</div>  
  30.     <select style="width:200px;height:100px;overflow: hidden;" v-model="multiple" multiple>  
  31.         <option value="A">A</option>  
  32.         <option value="B">B</option>  
  33.         <option value="C">C</option>  
  34.         <option value="D">D</option>  
  35.         <option value="E">E</option>  
  36.     </select>  
  37.     <div>多選選中的值是:{{multiple}}</div>  
  38.     <div>注意,這個多選select框是默認帶y軸的滾動條的</div>  
  39.     <div>——————————————</div>  
  40.     <div>動態渲染,checkbox和多選select框是互相影響的</div>  
  41.     <label><input type="checkbox" value="A" v-model="Dynamic">A</label><br/>  
  42.     <label><input type="checkbox" value="B" v-model="Dynamic">B</label><br/>  
  43.     <label><input type="checkbox" value="C" v-model="Dynamic">C</label><br/>  
  44.     <select style="width:200px;height:100px;overflow: hidden;" v-model="Dynamic" multiple>  
  45.         <option value="A">A</option>  
  46.         <option value="B">B</option>  
  47.         <option value="C">C</option>  
  48.     </select>  
  49.     <div>選中狀況是:{{Dynamic}}</div>  
  50.     <div>——————————————</div>  
  51.     <div>選中和選中的值自定義的checkbox</div>  
  52.     <label><input type="checkbox" v-bind:true-value="differentValues.t" v-bind:false-value="differentValues.f"  
  53.                   v-model="different">true/false</label><br/>  
  54.     <div>different value: {{different}}</div>  
  55.     <div>注意,以上不能像普通checkbox那麼樣,用一個數組做爲多個checkbox的v-model的變量,且其值是綁定與vm實例的某個屬性;  
  56.         所以,不能在v-bind裏的值是一個字符串,但能夠是一個對象,例如{a:1}這樣(固然,這個時候顯示的值也是一個對象了)  
  57.     </div>  
  58.     <div>——————————————</div>  
  59.     <div>自定義之的radio</div>  
  60.     <label><input type="radio" v-bind:value="text" v-model="customize"/>值爲1</label>  
  61.     <label><input type="radio" v-bind:value="textarea" v-model="customize"/>值爲1</label>  
  62.     <div>{{customize}}</div>  
  63.     <div>一樣,值能夠是vm的一個屬性或者是一個對象,另外,一樣有效的還有select。(主要就這三個有選中狀態,除此以外雖然例如Date類型也有選中,可是意義不大)</div>  
  64.     <div>——————————————</div>  
  65. </div>  
  66. <script>  
  67.     var vm = new Vue({  
  68.         el: '#app',  
  69.         data: {  
  70.             text: "默認有輸入內容",  
  71.             textarea: "這裏是多行文字\n第二行,\\n是換行符,但在字符串裏顯示爲空格",  
  72.             checkboxes: [],  
  73.             radio: "",  
  74.             select: "",  
  75.             multiple: "",  
  76.             Dynamic: {},  
  77.             different: "",  
  78.             differentValues: {  
  79.                 t: "true",  
  80.                 f: "false"  
  81.             },  
  82.             customize: ''  
  83.         }  
  84.     })  
  85. </script>  


 


②添加參數:

參數

說明

lazy

非實時更新,而是focus狀態結束後更新

number

將值自動轉爲number類型輸出

debounce

延遲若干毫秒再更新數值

 

【1】lazy

在取消focus狀態後才更新值,而不是按鍵按下時就更新值。

對文本輸入框和textarea都有效

 

如代碼:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <input type="text" v-model="text" lazy/>  
  2. <div>{{text}}</div>  

 


【2】number

將輸入的值自動轉爲number類型,若是轉後爲NaN類型,則返回原值;

如代碼:

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <input type="text" v-model="text" number/>  
  2. <div>{{text}}</div>  
  3. <div>{{typeof text}}</div>  

 

若是加上number這個參數,那麼輸入數字時,則提示類型爲string,加上以後,純數字會提示number類型;

 

 

【3】debounce=」毫秒數」

當值連續若干毫秒沒有變化時,觸發變量的值的改變;

如代碼:

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <input type="text" v-model="text" debounce="1000"/>  
  2. <div>{{text}}</div>  

 

當我以500ms的時間差依次輸入1,2,3,4,5,6這六個數字時,text的值不會被更新;

當我中止輸入有1000ms時,text值纔會被更新;

所以,適合相似ajax等高消耗操做。

相關文章
相關標籤/搜索