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值,所以要給這個標簽配置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ù)進行特定格式化后再顯示(使用與一些簡單邏輯的處理)
語法:
- 注冊過濾器: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-04
Vue3+script setup+ts+Vite+Volar搭建項目
本文主要介紹了Vue3+script setup+ts+Vite+Volar搭建項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
vue使用window.open()跳轉(zhuǎn)頁面的代碼案例
這篇文章主要介紹了vue中對window.openner的使用,vue使用window.open()跳轉(zhuǎn)頁面的代碼案例,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下2022-11-11

