表單和 v-model

Vue 提供了v--model指令誊涯, 用于雙向綁定表單類元素上 view 與 view-model 的數(shù)據(jù)

基礎用法

v-model 會忽略所有表單元素的 value、checked蒜撮、selected 特性的初始值而總是將 Vue 實例的數(shù)據(jù)作為數(shù)據(jù)來源暴构。你應該通過 JavaScript 在組件的 data 選項中聲明初始值。

單行文本
  <div id="app">
    <input type="text" v-model="msg"><br>
    你輸入的是: {{ msg }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
  let app = new Vue({
    el: '#app',
    data: {
      msg: ''
    }
  })
  </script>
多行文本

與單行文本類似:

    <textarea name="" id="" cols="30" rows="4"  v-model="msg">
      我是多行文本的初始值
    </textarea>

正如開頭提到的,所顯示的值只依賴于所綁定的數(shù)據(jù)丹壕,不再關心初始化時的插入的value


image.png
單選按鈕
  <div id="app">
    <input type="radio" name="pets" value="cat" v-model="petName">貓貓 <br>
    <input type="radio" name="pets" value="dog" v-model="petName">狗狗   <br>
    現(xiàn)在選中的是: {{petName}}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        petName: ''
      }
    })
  </script>
復選框
單個復選框

單個復選框庆械,直接綁定到布爾值

 <div id="app">
    v-model: <input type="checkbox" v-model="checked"> {{ checked }} <br> 
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        checked: false
      }
    })
  </script>
多個復選框

多個復選框,綁定到同一個數(shù)組:

  <div id="app">
    <input type="checkbox" value="cat" id="cat" v-model="arr"> 
    <label for="cat">cat</label><br>
    <input type="checkbox" value="dog" id="dog" v-model="arr"> 
    <label for="dog">dog</label><br>
    <input type="checkbox" value="bird" id="bird" v-model="arr">
    <label for="bird">bird</label>
    <br> 
    你選中了 : {{ arr }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        arr: []
      }
    })
下拉框
單選下拉框

單選時菌赖, 初始化最好綁定到字符串

 <div id="app">
    <select v-model="selected">
      <option disabled value="">請選擇</option>
      <!-- vue建議提供一個值為空的禁用選項 -->
      <option value="cat">貓貓</option>
      <option value="dog">狗狗</option>
      <option value="bird">小鳥</option>
    </select>
    <br> 你選中了 : {{ selected }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        selected: '' //初始化最好給定字符串
      }
    })
  </script>
多選下拉框

多選時缭乘,綁定一個數(shù)組

  <div id="app">
    <select v-model="selected" multiple>
      <option disabled value="">請選擇</option>
      <!-- vue建議提供一個值為空的禁用選項 -->
      <option value="cat">貓貓</option>
      <option value="dog">狗狗</option>
      <option value="bird">小鳥</option>
    </select>
    <br> 你選中了 : {{ selected }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        selected: ''
      }
    })
  </script>

值綁定

對于單選按鈕,復選框及下拉框的選項琉用,v-model 綁定的值通常是靜態(tài)字符串 (對于復選框也可以是布爾值)堕绩。
但是有時我們可能想把值綁定到 Vue 實例的一個動態(tài)屬性上,這時可以用 v-bind 實現(xiàn)邑时,并且這個屬性的值可以不是字符串奴紧。

單選按鈕

只需要用v--bind給單個單選框綁定一個value值,此時晶丘,v--model綁定的就是他的value值

  <div id="app">
  <input type="radio" v-bind:value='msg' v-model="pick">單選框<br>
    v-bind: {{ msg }} <br>
    v-model: {{ pick }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        msg: 'msg',
        pick: 'pick'
      }
    })
  </script>
//  當選中時  app.msg === app.pick

當選中時 app.msg === app.pick

復選框

true-value 當選中時
false-value 當沒有被選中時

  <div id="app">
  <input type="checkbox" 
         v-model="toggle" 
         v-bind:true-value= "value1" 
         v-bind:false-value="value2">點擊<br>
    toggle當前的值: {{ toggle}} <br>
    選中: {{ toggle === value1 }} <br>
    未被選中: {{ toggle === value2 }}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        toggle: 'toggle',
        value1: '我被選中了~',
        value2: '我沒有被選中'
      }
    })
  </script>
下拉框
  <div id="app">
   <select v-model="selected" >
     <option  v-bind:value="{a:1}">A</option>
   </select>
   當選中時黍氮,selected 的值為: {{selected}}
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        selected: ''
      }
    })
  </script>

修飾符

.lazy

v--model默認是在input輸入時實時同步輸入框的數(shù)據(jù),而lazy修飾符浅浮,可以使其使用 change 事件進行同步(在失去焦點或者敲回車鍵之后再更新)沫浆。
來個 demo 感受一下

.number

自動將用戶的輸入值轉為數(shù)值類型

這通常很有用,因為即使在 type="number" 時滚秩,HTML 輸入元素的值也總會返回字符串专执。

.trim

trim 自動過濾輸入過程中首尾輸入的空格

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市郁油,隨后出現(xiàn)的幾起案子本股,更是在濱河造成了極大的恐慌,老刑警劉巖桐腌,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拄显,死亡現(xiàn)場離奇詭異,居然都是意外死亡案站,警方通過查閱死者的電腦和手機凿叠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚼吞,“玉大人盒件,你說我怎么就攤上這事〔涨荩” “怎么了炒刁?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長誊稚。 經(jīng)常有香客問我翔始,道長罗心,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任城瞎,我火速辦了婚禮渤闷,結果婚禮上,老公的妹妹穿的比我還像新娘脖镀。我一直安慰自己飒箭,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布蜒灰。 她就那樣靜靜地躺著弦蹂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪强窖。 梳的紋絲不亂的頭發(fā)上凸椿,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音翅溺,去河邊找鬼脑漫。 笑死,一個胖子當著我的面吹牛咙崎,可吹牛的內容都是我干的优幸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼叙凡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了密末?” 一聲冷哼從身側響起握爷,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎严里,沒想到半個月后新啼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡刹碾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年燥撞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迷帜。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡物舒,死狀恐怖,靈堂內的尸體忽然破棺而出戏锹,到底是詐尸還是另有隱情冠胯,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布锦针,位于F島的核電站荠察,受9級特大地震影響置蜀,放射性物質發(fā)生泄漏。R本人自食惡果不足惜悉盆,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一盯荤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焕盟,春花似錦鹿寻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至堰怨,卻和暖如春芥玉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背备图。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工灿巧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揽涮。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓抠藕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒋困。 傳聞我的和親對象是個殘疾皇子盾似,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內容

  • vue概述 在官方文檔中,有一句話對Vue的定位說的很明確:Vue.js 的核心是一個允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,193評論 0 25
  • 表單類空間承載了一個網(wǎng)頁數(shù)據(jù)的錄入與交互雪标,本章將介紹如何使用指令v-model完成表單的雙向綁定零院。 6.1基本用法...
    六個周閱讀 853評論 1 6
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,969評論 3 119
  • “綻放一地情花,覆蓋一片青瓦”嵌牺,輕輕吟唱徐志摩一首《水墨青花》打洼,回想起某年的那個夏天在一個寂靜的早晨,背起背...
    夜風微雨閱讀 420評論 0 1
  • 最近忽感肚子疼痛逆粹,渾身發(fā)冷募疮,被折騰壞了。幸虧去了躺醫(yī)院僻弹。醫(yī)生給的答案也很好玩酝锅。你們知道是怎么回事嗎? 夏季已來奢方,在...
    請我喝點卡卡HWRC21356閱讀 246評論 0 0