Vuejs第六篇之Vuejs與form元素實(shí)例解析
本文是小編結(jié)合官方文檔整理的一篇細(xì)致代碼更多更全的詳細(xì)教程,非常適合新手學(xué)習(xí),感興趣的朋友一起看看吧!
資料來于官方文檔:
http://cn.vuejs.org/guide/forms.html
表單綁定
①常見綁定方法:
【1】文本輸入框綁定;
【2】textarea綁定(類似【1】);
【3】radio選中值綁定;
【4】checkbox綁定(自動(dòng)捆綁數(shù)組,無需name);
【5】select綁定;
【6】select multiple多選選中框綁定;
【7】動(dòng)態(tài)綁定(以上不同類型但同一個(gè)值可以互動(dòng));
【8】checkbox選中和未選中賦予不同的值(主要是針對不選中狀態(tài));
【9】checkbox,radio,select選中狀態(tài)的值動(dòng)態(tài)綁定(主要是指值動(dòng)態(tài)綁定對象或者是vm實(shí)例的屬性,例如data里的某個(gè)屬性,或者是computed的某個(gè)值);
如代碼:
<div id="app">
<input type="text" v-model="text"/>
<div>{{text}}</div>
<div>——————————————</div>
<textarea style="width:200px;height:100px;" v-model="textarea"></textarea>
<div>{{textarea}}</div>
<div>——————————————</div>
<label><input type="checkbox" v-model="checkbox"/>左邊選中右邊則為true:{{checkbox}}</label>
<div>——————————————</div>
<label><input type="checkbox" value="firstCheckbox" v-model="checkboxes">firstCheckbox</label><br/>
<label><input type="checkbox" value="secondCheckbox" v-model="checkboxes">secondCheckbox</label><br/>
<label><input type="checkbox" value="thirdCheckbox" v-model="checkboxes">thirdCheckbox</label><br/>
<div>以上選中的value情況為:{{checkboxes}}</div>
<div>以上選中的value情況為(以json格式顯示,這里使用了json過濾器):{{checkboxes|json}}</div>
<div>——————————————</div>
<label><input type="radio" value="A" v-model="radio"/>value = A</label><br>
<label><input type="radio" value="B" v-model="radio"/>value = B</label><br>
<div>{{radio}}</div>
<div>注意,這里的v-model的值應(yīng)該被注冊到data里面,否則會(huì)紅字警告(事實(shí)上,所有的都應(yīng)該也這么做)</div>
<div>——————————————</div>
<select v-model="select">
<option>默認(rèn)值,option不設(shè)value</option>
<option value="B">value的值設(shè)為B</option>
<option selected value="C">默認(rèn)選擇這個(gè),value設(shè)為C</option>
</select>
<div>{{select}}</div>
<div>同樣,這里不注冊也會(huì)被報(bào)錯(cuò)</div>
<div>——————————————</div>
<div>以下是select的多選,按住ctrl可以連續(xù)選,按住shift選擇區(qū)間</div>
<select style="width:200px;height:100px;overflow: hidden;" v-model="multiple" multiple>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<div>多選選中的值是:{{multiple}}</div>
<div>注意,這個(gè)多選select框是默認(rèn)帶y軸的滾動(dòng)條的</div>
<div>——————————————</div>
<div>動(dòng)態(tài)渲染,checkbox和多選select框是互相影響的</div>
<label><input type="checkbox" value="A" v-model="Dynamic">A</label><br/>
<label><input type="checkbox" value="B" v-model="Dynamic">B</label><br/>
<label><input type="checkbox" value="C" v-model="Dynamic">C</label><br/>
<select style="width:200px;height:100px;overflow: hidden;" v-model="Dynamic" multiple>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<div>選中情況是:{{Dynamic}}</div>
<div>——————————————</div>
<div>選中和選中的值自定義的checkbox</div>
<label><input type="checkbox" v-bind:true-value="differentValues.t" v-bind:false-value="differentValues.f"
v-model="different">true/false</label><br/>
<div>different value: {{different}}</div>
<div>注意,以上不能像普通checkbox那么樣,用一個(gè)數(shù)組作為多個(gè)checkbox的v-model的變量,且其值是綁定與vm實(shí)例的某個(gè)屬性;
因此,不能在v-bind里的值是一個(gè)字符串,但可以是一個(gè)對象,例如{a:1}這樣(當(dāng)然,這個(gè)時(shí)候顯示的值也是一個(gè)對象了)
</div>
<div>——————————————</div>
<div>自定義之的radio</div>
<label><input type="radio" v-bind:value="text" v-model="customize"/>值為1</label>
<label><input type="radio" v-bind:value="textarea" v-model="customize"/>值為1</label>
<div>{{customize}}</div>
<div>同樣,值可以是vm的一個(gè)屬性或者是一個(gè)對象,另外,同樣有效的還有select。(主要就這三個(gè)有選中狀態(tài),除此之外雖然例如Date類型也有選中,但是意義不大)</div>
<div>——————————————</div>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
text: "默認(rèn)有輸入內(nèi)容",
textarea: "這里是多行文字\n第二行,\\n是換行符,但在字符串里顯示為空格",
checkboxes: [],
radio: "",
select: "",
multiple: "",
Dynamic: {},
different: "",
differentValues: {
t: "true",
f: "false"
},
customize: ''
}
})
</script>
②添加參數(shù):

【1】lazy
在取消focus狀態(tài)后才更新值,而不是按鍵按下時(shí)就更新值。
對文本輸入框和textarea都有效
如代碼:
<input type="text" v-model="text" lazy/>
<div>{{text}}</div>
【2】number
將輸入的值自動(dòng)轉(zhuǎn)為number類型,如果轉(zhuǎn)后為NaN類型,則返回原值;
如代碼:
<input type="text" v-model="text" number/>
<div>{{text}}</div>
<div>{{typeof text}}</div>
如果加上number這個(gè)參數(shù),那么輸入數(shù)字時(shí),則提示類型為string,加上之后,純數(shù)字會(huì)提示number類型;
【3】debounce=”毫秒數(shù)”
當(dāng)值連續(xù)若干毫秒沒有變化時(shí),觸發(fā)變量的值的改變;
如代碼:
<input type="text" v-model="text" debounce="1000"/>
<div>{{text}}</div>
當(dāng)我以500ms的時(shí)間差依次輸入1,2,3,4,5,6這六個(gè)數(shù)字時(shí),text的值不會(huì)被更新;
當(dāng)我停止輸入有1000ms時(shí),text值才會(huì)被更新;
因此,適合類似ajax等高消耗操作。
以上所述是小編給大家介紹的Vuejs第六篇之Vuejs與form元素實(shí)例解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vuedraggable+element ui實(shí)現(xiàn)頁面控件拖拽排序效果
這篇文章主要為大家詳細(xì)介紹了vuedraggable+element ui實(shí)現(xiàn)頁面控件拖拽排序效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
vue-router二級(jí)導(dǎo)航切換路由及高亮顯示的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于vue-router二級(jí)導(dǎo)航切換路由及高亮顯示的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
部署Vue項(xiàng)目到服務(wù)器后404錯(cuò)誤的原因及解決方案
文章介紹了Vue項(xiàng)目部署步驟以及404錯(cuò)誤的解決方案,部署步驟包括構(gòu)建項(xiàng)目、上傳文件、配置Web服務(wù)器、重啟Nginx和訪問域名,404錯(cuò)誤通常是由于歷史模式問題導(dǎo)致的,解決方法是修改Nginx配置,將所有頁面請求重定向到index.html,并在Vue應(yīng)用中覆蓋所有路由情況2025-02-02
Vue實(shí)現(xiàn)雙向綁定的原理以及響應(yīng)式數(shù)據(jù)的方法
這篇文章主要介紹了Vue實(shí)現(xiàn)雙向綁定的原理以及響應(yīng)式數(shù)據(jù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
淺析vue 函數(shù)配置項(xiàng)watch及函數(shù) $watch 源碼分享
這篇文章主要介紹了vue 函數(shù)配置項(xiàng)watch及函數(shù) $watch 源碼分享 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11

