91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

含山县| 梅河口市| 潢川县| 辽中县| 六安市| 樟树市| 石城县| 永定县| 台安县| 施秉县| 耒阳市| 新营市| 越西县| 舒兰市| 宜宾县| 正镶白旗| 垫江县| 福州市| 华蓥市| 乳源| 宜黄县| 资中县| 津南区| 淮南市| 达州市| 自治县| 福安市| 梅河口市| 平潭县| 龙井市| 香格里拉县| 文山县| 广西| 长宁县| 龙江县| 庆阳市| 揭阳市| 修水县| 宁夏| 商河县| 新源县|