アポストロフィ onKeyUp または OnKeyPress のようなものを禁止する単純な JS を探しています。たとえば、ユーザーがキーを押すたびに、それがアポストロフィ (Jame's Pizza) の場合はスペースに置き換えます。コードを見つけたPHPで処理したくありません
が、JSをテキストフィールドNameに結び付けますが、これは望ましくありません。グローバルなものが必要で、
3637 次
2 に答える
7
キーストロークをさかのぼって削除するよりも、キーストロークを防止する方が常に優れています。keypress
これを達成するには、イベントをインターセプトする必要があります(keyup
遅すぎます)。
document.getElementById('yourTextBoxID').onkeypress = function () {
if (event.keyCode === 39) { // apostrophe
// prevent the keypress
return false;
}
};
がボックスに表示されないようにするだけで、キープレス イベントを親要素に伝播させたい場合は、を'
に置き換えます。(コメントでEivind Eidheim Elsethが提案)return false;
event.preventDefault();
于 2012-08-17T15:08:29.203 に答える
0
以下の機能を見つけてください。ページ上のすべてのinput
要素を取得し、それぞれにイベント ハンドラーを割り当てkeydown
ますkeyup
。アポストロフィが検出されると、preventDefault()
メソッドが呼び出されます。
function listen(event, elem, func) {
if (elem.addEventListener) return elem.addEventListener(event, func, false);
else elem.attachEvent('on' + event, func);
}
listen('load', window, function() {
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i += 1) {
keyHandler(i);
}
function keyHandler(i) {
listen('keydown', inputs[i], function(e) {
if (e.keyCode === 222) { // 222 is the keyCode for apostrophe
e.preventDefault();
}
});
listen('keyup', inputs[i], function(e) {
if (e.keyCode === 222) { // 222 is the keyCode for apostrophe
e.preventDefault();
}
});
}
});
于 2012-08-17T15:12:33.103 に答える