最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue指令只能輸入正數(shù)并且只能輸入一個(gè)小數(shù)點(diǎn)的方法

 更新時(shí)間:2018年06月08日 09:04:57   作者:冰格兒  
這篇文章主要介紹了vue指令只能輸入正數(shù)并且只能輸入一個(gè)小數(shù)點(diǎn)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近在做一個(gè)金額查詢,驗(yàn)證的時(shí)候總是出現(xiàn)很多問(wèn)題,如輸入-號(hào)后,input框里是沒(méi)有了,但是在model里還是綁定了,提交的時(shí)候就會(huì)報(bào)錯(cuò),真的是讓人很是郁悶,小數(shù)點(diǎn)也是input框過(guò)濾掉了,但是提交的時(shí)候也會(huì)出現(xiàn)。不過(guò)經(jīng)過(guò)努力終于找到了一種解決方案,在這里``和大家分享一下下。

Vue.directive('numbers', {
 bind: function (el, binding) {
  console.log('ere')
 },
 inserted: function (el) {
  // el.querySelector('input').blur(console.log('etset'))
 },
 update: function (el, binding, vnode, oldVnode) {
  console.log('vnode', vnode)
  let express = vnode.data.directives[1].expression
  // let value = el.querySelector('input').value
  let value = vnode.data.directives[1].value
  if (typeof value === 'string') {} //在重置的時(shí)候清空
  if (value.split('.').length - 1 > 1) {
   value = value.replace(/\.{2,}/g, '') // 只保留第一個(gè). 清除多余的
   value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  }
  let repeatValue = value.replace(/[^\d.]/g, '')
  // setTimeout(() => {
  //  el.querySelector('input').value = repeatValue
  // }, 5)
  setValueWithExpressionVue(vnode.context.$data, express, repeatValue)
 },
 componentUpdated: function () {},
 unbind: function (el) {}
})

// 
function setValueWithExpressionVue (currObj, expression, value) {
 expression = expression.split('.')
 expression.forEach(function (arg, i) {
  if (i < expression.length - 1) {
   currObj = currObj[arg]
  } else {
   currObj[arg] = value
  }
 })
}

放到main.js里就好了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

三原县| 定结县| 黔南| 青铜峡市| 顺义区| 东丽区| 东乡| 盘山县| 安宁市| 合江县| 棋牌| 略阳县| 永福县| 廉江市| 福建省| 眉山市| 阿城市| 临沂市| 二连浩特市| 泊头市| 谢通门县| 宣恩县| 辛集市| 涟水县| 麟游县| 古浪县| 白沙| 玉林市| 永德县| 永康市| 高平市| 正宁县| 东乡县| 化州市| 萍乡市| 常宁市| 海南省| 开江县| 敦化市| 义马市| 通城县|