在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ js格式化銀行卡號(hào)后在中間刪除或增加光標(biāo)移動(dòng)到最后一位

js格式化銀行卡號(hào)后在中間刪除或增加光標(biāo)移動(dòng)到最后一位

這是input,因?yàn)閷?shí)際保存的數(shù)據(jù)和顯示數(shù)據(jù)不一樣,所以沒(méi)有用model。 現(xiàn)在已經(jīng)可以正常格式化了,四個(gè)一空格,但是現(xiàn)在問(wèn)題是將光標(biāo)放在中間某個(gè)地方進(jìn)行刪除或者增加時(shí),光標(biāo)自動(dòng)移動(dòng)到了最后,無(wú)法正常在中間進(jìn)行刪除增加。

     <input name="bank_account" label="銀行卡號(hào)" placeholder="僅支持借記卡 將放款至此賬號(hào)" type="text" :value="display_bank_account" @blur="handleBankCardBlur" @input="handleBankCardInput" />
     
     
     
     

 handleBankCardInput(val, event) {
      // 初始位置光標(biāo)
      let caret = event.target.selectionStart
      // console.log(caret)
      // 共有n個(gè)空格
      let sp = (val.slice(0, caret).match(/\s/g) || []).length
      this.bank_account = val.replace(/\s/g, '')
      this.display_bank_account = val.replace(/\s/g, '').replace(/(\d{4})(?=\d)/g, '$1 ')
      // 格式化后共有n個(gè)空格
      let curSp = (this.display_bank_account.slice(0, caret).match(/\s/g) || []).length
      // console.log(curSp, sp)
      event.target.selectionStart = caret + curSp - sp
      event.target.selectionEnd = caret + curSp - sp
      console.info('caret', caret, 'curSp', curSp, 'sp', sp, 'sum', caret + curSp - sp)
    },

嘗試做了以上工作,但是在pc端測(cè)試時(shí),有時(shí)候還時(shí)會(huì)跳到最后,有時(shí)候正常,在移動(dòng)端測(cè)試時(shí),光標(biāo)的指向不起作用,每次都是跳到最后。
謝謝。

回答
編輯回答
不討喜

我也遇到這個(gè)問(wèn)題了,請(qǐng)問(wèn)你解決了嗎?

2017年4月25日 14:17