亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue指令只能輸入正數并且只能輸入一個小數點的方法

發布時間:2020-10-19 23:28:46 來源:腳本之家 閱讀:242 作者:冰格兒 欄目:web開發

最近在做一個金額查詢,驗證的時候總是出現很多問題,如輸入-號后,input框里是沒有了,但是在model里還是綁定了,提交的時候就會報錯,真的是讓人很是郁悶,小數點也是input框過濾掉了,但是提交的時候也會出現。不過經過努力終于找到了一種解決方案,在這里``和大家分享一下下。

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') {} //在重置的時候清空
  if (value.split('.').length - 1 > 1) {
   value = value.replace(/\.{2,}/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里就好了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮阳县| 铁岭市| 高青县| 电白县| 溧阳市| 汤阴县| 麦盖提县| 长寿区| 祁阳县| 图们市| 瑞安市| 平泉县| 中江县| 安庆市| 聊城市| 神农架林区| 沭阳县| 那坡县| 楚雄市| 灵武市| 阿克| 弥勒县| 顺义区| 朔州市| 岢岚县| 桦川县| 黎城县| 黄大仙区| 耿马| 阿坝县| 原阳县| 滦平县| 田林县| 兰西县| 宜宾市| 玉山县| 香格里拉县| 玉环县| 金昌市| 新沂市| 岑溪市|