jQueryでバックスペースキーイベントをトリガーするにはどうすればよいですか?
次の例は機能しません。
var e = jQuery.Event("backspace", { keyCode: 8 });
$("#myarea").trigger( e );
実際にトリガーすることはできません。
たとえば、特定の入力から最後の文字を削除することはできますが、実際のキーをトリガーすることはできません。
例:
var str = $('#input').val();
$('#input').val(str.substring(0, str.length - 1));
Backpace キーをトリガーすることはできません。
jquery caret pluginを使用すると、正しい文字を削除することでバックスペース キーの押下をシミュレートできます。
backspace = function (element_name) {
var element = $(element_name);
var caret_pos = element.caret();
var new_val = element.val().substr(0, caret_pos - 1) + element.val().substr(caret_pos);
element.val(new_val);
if (caret_pos > 0) {
element.caret(caret_pos - 1);
}
};
このjsfiddleを参照してください(キャレットプラグインのソースを変更する必要がある場合があります)