code up

jQueryでバックスペースを禁止する

キーボードの押し間違いで入力していたものが消えることがたまにある。

小さいネットブックを使っていると、半角/全角キーを押そうとして間違えてESCを押してしまい、ウィンドウが閉じてしまうこと、など。

今開発している画面でもそんなことがあってreadonlyのフィールドにカーソルがあたっている状態でbackspaceキーを押すと画面が戻ってしまう(確認できたのはIEとChrome)。

そんなユーザビリティはダメってことで、jQueryを使ったbackspaceを禁止するコード。

$(document).keydown(function(e) {
	if (e.keyCode === 8) {
		var tag = e.target.nodeName.toLowerCase();
		var $target = $(e.target);
		if ((tag !== 'input' && tag !== 'textarea') || $target.attr('readonly') || $target.is(':disabled')) {
			return false;
		}
	}
	return true;
});

このあたりのスレッドを参考にしました。

関連記事
タグ:jQuery