我確定這是我錯(cuò)過(guò)的非常愚蠢的事情。我正在編寫一個(gè)小片段,為從輸入字段中抓取的字符串添加一個(gè)連字符。連字符只有在我們到達(dá)位置 4 時(shí)才會(huì)添加,所以我可以輸入 123 并且連字符不會(huì)出現(xiàn)。如果我輸入 1234,它會(huì)自動(dòng)更改為 1234-。問(wèn)題在于處理粘貼,在 jQuery 內(nèi)的某處(在我的代碼執(zhí)行后),它向字段中注入了更多字符。我的方法很簡(jiǎn)單。我查看 keyup 和 keydown 事件,檢查輸入并插入連字符。對(duì)于粘貼,我什至查看粘貼,抓住字符串,拆分它并根據(jù)是否存在連字符插入一個(gè)連字符。$('[id$="field"]').on('paste', function (event) { var element = this; var text = event.originalEvent.clipboardData.getData('text').split(''); if (text.length > 4 && text.indexOf('-') < 0) { text.splice(4, 0, '-'); $(element).val(text.join('')); }});$('[id$="field"]').bind('keyup keydown', function (event) { var input = $(this).val(); if (input.length === 4 && event.keyCode !== 8) { $($(this).val(input + '-')); }});在keyup與keydown聽眾的作品就好了。如果我在 12345 中粘貼,當(dāng)我$(element).val(text.join(''));在 jQuery 執(zhí)行它的操作時(shí),當(dāng)我點(diǎn)擊了額外的字符時(shí),我最終會(huì)得到 1234-5 。我比較困惑。有任何想法嗎?
被注入輸入字段的字符
慕碼人8056858
2021-06-30 07:47:21
