0

textarea 要素を含むフォームを含む Web ページで作業しています。JavaScript を使用して、入力値を数値のみに制限したいと考えています。私が見つけた 1 つの方法は、ユーザーがデータを入力しているときにキー値をチェックすることです。

function checkForEnter() {
if (!((event.keyCode >= 48) || (event.keyCode <= 57))) {                            
//event.stopPropagation(); throw error with IE ver 8
event.cancelBubble = true;
event.returnValue = false;
return false;
                    
  }
}

入力した値を制限するには、他にどのような方法を使用できますか?

4

3 に答える 3

1

ご協力いただきありがとうございます

この解決策は私のために働く

inputext は、2 つのイベントを同じ関数 (checkForEnter ) onkeypress と onkeydown にアタッチしています。

どちらの場合も、数字のみを検証します

これ以上、ブラ、ブラ、ブラ、

function checkForEnter() { 
if (event.keyCode == 13) {

var txt = event.srcElement;      

                    }
//that was my problem
//var chCode = ('charCode' in event) ? event.which : event.keyCode;

//that was my solution
var chCode = event.keyCode; 


                    if (chCode != 8 || chCode != 46) {

//alphanumeric keyboard
                        if (chCode >= 48) {
                            if (chCode <= 57) {
                            }
                            else {
//numeric keyboard
if (chCode > 95 && chCode < 106) {
                                } else {
                                    event.cancelBubble = true;
                                    event.returnValue = false;
                                    return false;
                                }
                            }
                        }
if (chCode == 32) {
   event.cancelBubble = true;
event.returnValue = false;
return false;
}        
}                                      
}

ps。私はできません

javascriptで多重比較ができない

: (

そのため、 if .. if .. if を使用します

于 2013-01-10T16:08:34.853 に答える
0

関数にeventパラメーターがないため、未定義の変数のメソッドを呼び出すと、当然エラーになります。試す:

function checkForEnter(event) {
    ...
}
于 2013-01-04T16:38:34.597 に答える
0

あなたがしたいevent.preventDefault()、ではありませんevent.stopPropagation()preventDefaultキー押下イベントのデフォルトの動作を停止します (つまり、テキスト フィールドに文字を追加します)。

于 2013-01-04T16:10:00.943 に答える