成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】

瀏覽:3日期:2023-01-16 17:15:09

本文實例講述了vue使用自定義事件的表單輸入組件用法。分享給大家供大家參考,具體如下:

自定義事件可以用來創建自定義的表單輸入組件,使用 v-model 來進行數據雙向綁定。

v-model的實現原理 :

<input v-model='something'>

這不過是以下示例的語法糖:

<inputv-bind:value='something'v-on:input='something = $event.target.value'>

在開發項目中,當遇到日期數據時,往往后臺的日期數據都為long型,而前臺顯示成日期型,在使用v-model時,需要轉換一下,為了簡化轉換過程,對此實現自定義日期輸入組件,該組件接收long型日期數據,顯示為date型,通過v-model實現雙向綁定

自定義日期輸入組件實現代碼:

dates.vue組件

<template> <input ref=’dateinput’ type='date' v-bind:value='svalue(value)' v-on:input='uvalue($event.target.value)' /></template><script type='text/javascript'> export default{ props:[’value’], methods:{ svalue(value){if(value) { return $api.dateFormat(value);}else{ return ’’;} }, uvalue(value){var _val = value.split(’-’);//大于1970時才觸發事件,以防止用戶手動輸入年份時計算不正確if(value && _val[0]>=1970){ this.$emit(’input’,$api.getLong(value));} } } } //dateFormat函數 long轉date型 var dateFormat=function(longTypeDate){ var dateType = ''; if(longTypeDate){ longTypeDate = parseInt(longTypeDate); var date = new Date(longTypeDate); dateType += date.getFullYear(); //年 dateType += '-' + getMonth(date); //月dateType += '-' + getDay(date); //日 }else{ dateType = (new Date()).format('yyyy-MM-dd') ; } return dateType; } //返回 01-12 的月份值 var getMonth=function (date){ var month = ''; month = date.getMonth() + 1; //getMonth()得到的月份是0-11 if(month<10){ month = '0' + month; } return month; } //返回01-30的日期 var getDay=function (date){ var day = ''; day = date.getDate(); if(day<10){ day = '0' + day; } return day; } //getLong函數 date轉long型 var getLong = function(date){ date=Date.parse(date.replace(new RegExp('-','gm'),'/')); return date; }</script>

使用方法

<template> <div> <dates name='guaranteeBeginDay' v-model='guaranteeBeginDay' /> </div></template><script> import dates from ’../dates/dates.vue’ export default{ data(){ return {guaranteeBeginDay:1509697628823 //long型數據 } } }</script>

項目需求,在表單中貨幣組件,用戶輸入數字,為其自動添加逗號分隔符,且只能輸入數字,限制小數點后最多兩位,實現了自定義貨幣組件

自定義貨幣組件實現代碼:

currency.vue組件

<template> <input refs='currencyinput' type='text' v-bind:value='showValue(value)' v-on:input='updateValue($event)' /></template><script type='text/javascript'> export default{ props:[’value’], methods:{ showValue(value){if(!!!value){ return ’0’;}return (value+’’).replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, ’$&,’); }, updateValue(el){var value = el.target.value ;value = value.replace(/[^d.]/g,'') .replace(/.{2,}/g,'.') .replace('.','$#$').replace(/./g,'').replace('$#$','.') .replace(/^(-)*(d+).(dd).*$/,’$1$2.$3’);//只能輸入兩個小數 if(value.indexOf('.') < 0 && value !=''){//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似于 01、02的金額 if(value.substr(0,1) == ’0’ && value.length == 2){ value = value.substr(1,value.length); } }el.target.value = value.replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, ’$&,’);this.$emit(’input’, value); } } }</script>

使用方法

<template> <div> <currency name='money' v-model='money' /> </div></template><script> import dates from ’../currency/currency.vue’ export default{ data(){ return {money:12934350.34 } } }</script>

實例圖片

vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】

一開始不明白

自定義組件中綁定的input事件中

this.$emit(’input’,$api.getLong(value)); || this.$emit(’input’, value);

的含義

為什么input事件中還要觸發input事件,這樣不就造成循環調用了嗎,后來深入研究,

才明白,$emit是用于子組件觸發父組件的事件函數,所以此處的input事件為調用該組件的父組件的input事件

<dates name='guaranteeBeginDay'v-model='guaranteeBeginDay' /> || <currency name='money' v-model='money' />

而父組件的input事件則是v-model的實現原理

<inputv-bind:value='something'v-on:input='something = $event.target.value'>

所以子組件的input事件會觸發父組件的input事件,進而改變vue data數據,data數據變化觸發v-bind:value來更新頁面數據顯示。

希望本文所述對大家vue.js程序設計有所幫助。

標簽: Vue
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品午夜久久| 欧美日韩一区二区三区四区| 久久狠狠婷婷| 日韩码欧中文字| 亚洲午夜精品久久久久久浪潮| 精品动漫一区二区三区在线观看| 麻豆成人久久精品二区三区红 | 欧美成人女星排行榜| 国模一区二区三区白浆| 欧美综合色免费| 亚洲国产精品久久久久秋霞影院 | 欧美图片一区二区三区| 日本亚洲一区二区| 欧美在线999| 美女性感视频久久| 欧美性受xxxx| 久久精品二区亚洲w码| 美女精品在线| 日韩高清不卡一区二区| 久久一区欧美| 免费人成网站在线观看欧美高清| 欧美私人免费视频| 老司机精品视频导航| 欧美久久久久免费| 国产+成+人+亚洲欧洲自线| 日韩写真欧美这视频| 高清不卡在线观看| 日韩区在线观看| 91丨九色丨尤物| 国产精品美女一区二区| 欧美日韩免费| 亚洲欧美aⅴ...| 亚洲国产导航| 亚洲女女做受ⅹxx高潮| 亚洲免费在线精品一区| 亚洲在线观看免费视频| 另类激情亚洲| 天堂va蜜桃一区二区三区漫画版| 麻豆av福利av久久av| 五月天视频一区| 色婷婷综合中文久久一本| 日韩国产欧美一区二区三区| 在线观看一区日韩| 激情综合网最新| 91精品国产欧美一区二区18| 国产成人午夜精品5599| 欧美不卡一区二区三区四区| 成人国产一区二区三区精品| 久久亚洲免费视频| 国模 一区 二区 三区| 亚洲精品国产一区二区精华液 | 亚洲精品国产精华液| 国产乱人伦精品一区二区 | 56国语精品自产拍在线观看| 国产一区二区伦理| 精品欧美乱码久久久久久| 欧美国内亚洲| 亚洲免费在线视频| 久久精品二区三区| 捆绑调教美女网站视频一区| 欧美一区二区美女| 99精品国产热久久91蜜凸| 亚洲欧洲三级电影| 噜噜噜在线观看免费视频日韩 | 一区免费在线| 午夜精品久久久久久久久久| 欧美日韩一区小说| 成人在线视频首页| 国产精品天天看| 国产日韩欧美一区| 精品系列免费在线观看| 精品成a人在线观看| 影音先锋亚洲精品| 人妖欧美一区二区| 欧美成人午夜电影| 91久久夜色精品国产九色| 男男视频亚洲欧美| 欧美成人精精品一区二区频| 亚洲一级电影| 免费不卡在线观看| 日韩欧美亚洲国产精品字幕久久久 | 有坂深雪av一区二区精品| 久久精品人人| 成人av在线影院| 亚洲精品国产一区二区精华液| 欧美亚洲一区二区三区四区| 91浏览器入口在线观看| 亚洲va中文字幕| 日韩精品一区二区三区视频| 亚洲精品1区| 奇米四色…亚洲| 精品福利在线导航| 亚洲欧美日韩另类精品一区二区三区 | 国产日韩三级在线| 怡红院精品视频在线观看极品| 亚洲精品欧美综合四区| 欧美日韩成人一区| 好吊色欧美一区二区三区视频| 蜜臀a∨国产成人精品| 久久久久国产精品人| 亚洲欧美清纯在线制服| 大美女一区二区三区| 一区二区三区日韩| 精品国产网站在线观看| 久久成人国产| 99re这里只有精品视频首页| 五月婷婷综合网| 久久婷婷一区二区三区| 久久国产精品免费一区| 91在线观看地址| 青青草国产精品亚洲专区无| 国产亚洲一区二区三区| 色婷婷激情久久| 午夜精品剧场| 老汉av免费一区二区三区| 国产免费成人在线视频| 蜜桃av噜噜一区二区三区| jizzjizzjizz欧美| 日韩精品一二三| 国产精品婷婷午夜在线观看| 欧美日韩国产综合草草| 99国产精品视频免费观看一公开| 国产成人丝袜美腿| 一区二区三区资源| 精品国产sm最大网站免费看| 奶水喷射视频一区| 91视频国产观看| 国产一区二区在线观看免费| 亚洲国产成人tv| 亚洲国产电影在线观看| 91超碰这里只有精品国产| 国产日韩一区欧美| 欧美一区网站| 国产一区二区导航在线播放| 一区2区3区在线看| 国产欧美日韩另类一区| 91精品久久久久久蜜臀| 久久久水蜜桃| 亚洲茄子视频| 女人色偷偷aa久久天堂| 国产精品综合网| 免费在线看一区| 亚洲午夜在线观看视频在线| 亚洲国产精品国自产拍av| 日韩亚洲欧美一区二区三区| 久久精品综合| 欧美啪啪一区| av在线综合网| 国产精一品亚洲二区在线视频| 偷窥国产亚洲免费视频| 亚洲欧美激情小说另类| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美一区三区四区| 欧美视频在线一区| 小嫩嫩精品导航| 99视频一区| 国产自产精品| av电影在线观看一区| 国产精品综合在线视频| 六月丁香婷婷久久| 日韩精品电影在线| 一区二区在线观看不卡| 国产精品国产自产拍在线| 精品国产电影一区二区| 日韩你懂的在线观看| 欧美日产国产精品| 91福利小视频| 91国产成人在线| 久久天堂精品| 国产乱码精品| 国产人成精品一区二区三| 在线精品亚洲一区二区| 国内精品美女在线观看| 欧美日韩国产三区| 欧美成人嫩草网站| 欧美凹凸一区二区三区视频| 福利电影一区二区| 国产suv精品一区二区三区| 国产精品亚洲视频| 国产精品亚洲专一区二区三区| 国内外成人在线| 久久国产剧场电影| 久久超碰97中文字幕| 久久国产婷婷国产香蕉| 久久国产成人午夜av影院| 美国一区二区三区在线播放| 蜜桃av一区二区| 奇米四色…亚洲| 久久国产成人午夜av影院| 极品尤物av久久免费看| 国内精品久久久久影院薰衣草| 久久av中文字幕片| 国产一区二区91| 福利电影一区二区| 99久久久精品| 91色|porny| 欧美黄色大片网站| 极品日韩久久| 中文精品一区二区三区| 久久成人精品|