focus()
JavaScriptのすべてのHTML要素の関数を上書きしたい。
それ、どうやったら出来るの?
純粋な JS の場合:
HTML:
<input id="test" type="textfield" />
JS:
var myInput = document.getElementById("test");
myInput.addEventListener("focus",deFocus(myInput),true);
function deFocus(element) {
element.setAttribute('readonly','readonly');
return false;
}
働くフィドル
JQuery の場合:
HTML
<input id="test" type="textfield" />
JQuery
$('#test').focus(function() {
$(this).blur();
});
働くフィドル
クラス、IDなど、必要なものに を追加しEventListener
て、関数を実行するか、他の何かをトリガーしてロックを解除できます。JQueryもこれを非常にスムーズに処理できますが、そのルートに行く場合は、クラスをセレクターとして使用することをお勧めします。その後、クラスを動的に追加および削除してフォーカスを無効にすることができます。