皆様いつもお世話になっております。
input type="text"
フィールドへconvertNumberToLocaleString
クラスを振って、
下記スクリプトで当該クラス要素を、lodashライブラリのmap関数でループさせて、カンマ処理inputイベントハンドラを設定&即時ディスパッチさせており、
PC上のCHROMEやsafariからのアクセスでは正常に機能しているのですが、表題の通りiOSのCHROMEやsafari等では異常挙動となってしまいます。
例:11と入力すると111になる。さらに1を入力すると、111,111になる等
HTMLは他と干渉無し、jsライブラリインクルード等は無い状態で動作するjsfiddleのリンクを追記させて頂きます。
jsfiddle
iOSのCHROMEやsafari等ではinputイベントの発火タイミングが違うようにも思えるのですが、どなたか御教示頂けると幸いです。
宜しくお願い致します。
※ソースも修正しました
javascript
1var elms = document.getElementsByClassName('convertNumberToLocaleString'); 2for(var i = 0; i < elms.length; i++){ 3 elms[i].addEventListener('input', function (event) { 4 let value = event.target.value.replace(/[^0-9]/g,''); 5 event.target.value = (value === '' ? '' : Number(value).toLocaleString('ja-JP')); 6 }); 7 elms[i].dispatchEvent(new Event('input')); 8}
HTML
1<input type="text" value class="convertNumberToLocaleString" />
あなたの回答
tips
プレビュー