input
イベントは右クリックメニューからの貼り付けにも対応した優秀なイベントですが、<input type="text">
で検証してみると value
プロパティには入力後の値が入っています。
input
イベントハンドラ関数内において入力する一つ手前の値を取得する方法は用意されていないでしょうか。
下記コードで data-*
独自属性に入力前の値を保存しておく事で期待通りの結果を得られますが、同様の機能を標準APIを使う事でよりスマートに実装出来ないか、を探しています。
HTML
1<input id="sample" type="text" name="sample" data-input-before="" value="" /> 2 3<script> 4'use strict'; 5document.getElementById('sample').addEventListener('input', function handleInput (event) { 6 var input = event.target, 7 value = input.value; 8 9 console.log('input-before', input.getAttribute('data-input-before')); 10 console.log('input-end', value); 11 input.setAttribute('data-input-before', value); 12 13 console.log(event); 14 console.log('data' in event, event.data); // false undefined 15}, false); 16</script>
「UI Events」によれば InputEvent#data
が存在すると読めるのですが、Google Chrome ver.54.0.2840.87 m, Firefox ver.49.0.2 共に当該プロパティは存在しませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/08 17:11