Vue收集表單數(shù)據(jù)和過濾器總結(jié)
收集表單數(shù)據(jù)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--vue--> <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script> </head> <div id="root"> <h2>個人信息收集</h2> <form> 姓名:<input type="text" placeholder="請輸入姓名" v-model.trim="zh"><br> 密碼:<input type="password" placeholder="請輸入密碼" v-model="mm"><br> 年齡:<input type="number" placeholder="輸入數(shù)字" v-model.number="age"> 性別: <label><input type="radio" name="sex" v-model="sex" value="男">男</label> <label><input type="radio" name="sex" v-model="sex" value="女">女</label><br> 愛好:<label><input type="checkbox" v-model="hobby" value="Java">Java</label> <label><input type="checkbox"v-model="hobby" value="SpringBoot">SpringBoot</label> <label><input type="checkbox"v-model="hobby" value="Vue">Vue</label><br> 所屬地區(qū): <select v-model="whereFrom"> </optgroup> <optgroup label="江西"> <option value="江西南昌">南昌</option> <option value="江西贛州">贛州</option> <option value="江西九江">九江</option> </optgroup> <optgroup label="其他"> <option value="其他地方">地方</option> </optgroup> </select><br> <!--.lazy是等失去焦點才數(shù)據(jù)綁定 --> 自我介紹:<br><textarea v-model.lazy="introduceMyself" placeholder="這個填寫框 右下角可以拉伸"></textarea><br> <label> <input type="checkbox" v-model="agree">閱讀并勾選</label> <a @click.prevent rel="external nofollow" >《協(xié)議書》</a><br> <button @click.prevent="tijiao">提交</button> </form> </div> <script type="text/javascript"> const vm = new Vue({ el: '#root', data: { zh:'', mm:'', age:'', sex:'男', hobby:['Java'], whereFrom:'江西贛州', introduceMyself:'', agree:'' }, methods: { tijiao(){ console.log(JSON.stringify(this._data)) } } }); </script> <body> </body> </html>
收集表單數(shù)據(jù)總結(jié)
若:<input type='text'/>,v-model收集的是value值,用戶輸入就是value值。
若<input type=" radio"/>,因為v-model收集的為value值,所以要給這個標(biāo)簽配置value值,這樣勾選的收集到的就是這你配置的值
若:<input type=" checkbox"/>
1、沒有配置input的value屬性,那么收集的就是checked(勾選或未勾選,是一個布爾值)
2、配置input的value屬性:
v-model的初始值是非數(shù)組(一開始定義收集這個checkbox定義為字符串時),那么收集的就是有沒有勾選的布爾值v-model的初始值是數(shù)組,那么收集的才是你定義的value值(勾選了才會收集)
備注:v-model的三個修飾符
- lazy:失去焦點后在收集數(shù)據(jù)
- number:輸入的字符串轉(zhuǎn)為有效數(shù)字
- trim:去除輸入前后的空格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--vue--> <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script> <script src="Vue文件/dayjs.min.js"></script> </head> <div id="root"> 格式化前:{{NowTime}}<br> <!-- 使用計算屬性器--> 使用計算屬性器格式化后:{{relTime}}<br> <!-- 使用方法--> 使用方法格式化后:{{MethodTime()}}<br> <!-- 使用過濾器--> 使用過濾器格式化后:{{NowTime | filterTime}}<br> <!--濾器格式化后分割前四位--> 使用過濾器格式化后分割:{{NowTime | filterTime |mySlice}}<br> </div> <script type="text/javascript"> //配置全局過濾器 Vue.filter('mySlice',function (value) { //分割前四位 return value.slice(0,4)//從第一位開始 }) const vm = new Vue({ el: '#root', data: { NowTime:1669339250633, }, methods: { MethodTime(){ return dayjs(this.NowTime).format('YYYY-MM-DD HH:mm:ss') } }, computed:{ relTime(){ return dayjs(this.NowTime).format('YYYY-MM-DD HH:mm:ss') } }, filters:{ filterTime(value){ return dayjs(value).format('YYYY-MM-DD HH:mm:ss') }, // 分割字串前四位 // mySlice(value){ // return value.slice(0,4)//從第一位開始 // } } }); console.log(vm) </script> <body> </body> </html>
運行結(jié)果:
過濾器小結(jié)
定義:對要顯示的數(shù)據(jù)進(jìn)行特定格式化后再顯示(使用與一些簡單邏輯的處理)
語法:
- 注冊過濾器:Vue.filter(name,callback)或new Vue{filters:{}}
- 使用過濾器:{{xxx | 過濾器名}} 或者 v-bind:屬性="xxx | 過濾器名"
備注:
- 過濾器也可以接受額外參數(shù)、多個過濾器件也可以串聯(lián)
- 過濾器并沒有改變原本的數(shù)據(jù),是產(chǎn)生新的對應(yīng)的數(shù)據(jù)
到此這篇關(guān)于Vue收集表單數(shù)據(jù)和過濾器的文章就介紹到這了,更多相關(guān)Vue收集表單數(shù)據(jù)和過濾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue cli 3.x 項目部署到 github pages的方法
這篇文章主要介紹了vue cli 3.x 項目部署到 github pages的方法,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04Vue3+script setup+ts+Vite+Volar搭建項目
本文主要介紹了Vue3+script setup+ts+Vite+Volar搭建項目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08vue使用window.open()跳轉(zhuǎn)頁面的代碼案例
這篇文章主要介紹了vue中對window.openner的使用,vue使用window.open()跳轉(zhuǎn)頁面的代碼案例,本文通過實例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11