3

この JAVSCRIPT 関数の目的は、ユーザーが英字を入力できないようにすることです。ユーザーがこれらの文字を入力すると、カーソルはまったく移動せず、同じ場所にとどまります。ただし、ユーザーが数字を入力すると、カーソルは次の位置に移動します。

たとえば、このテキスト フィールドでは、ユーザーが数字のみを入力できるようにしています。この方法は、IE 8 以前を除くすべてのブラウザーで正常に機能します。Firefox、Chrome、Safari、さらには Safari エミュレーターでも問題なくテストしました。誰かが私を案内したり、IEでもうまく動作するように私の方法を修正するように提案したりすれば、それは大きな助けになるでしょう!!! ありがとうございました

function AllowOnlyDigit(e) {
     var ev = e || window.event;
     var key = ev.keyCode || ev.which || ev.charCode;

     if (key > 31 && (key < 48 || key > 57)) {
         return false;
     }
     return true;
 }

そして、これが私がこのメソッドを呼び出す方法です:

<input type="text" onkeypress="return AllowOnlyDigit(event)" />
4

3 に答える 3

-1

この jquery 関数を使用して、数字、ポイント、コンマのみを有効にすることができます。

$('input').keydown(function(event) {
    // Allow: backspace, delete, tab, escape, and enter
    if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || event.keyCode == 188 || event.keyCode == 190 || 
         // Allow: Ctrl+A
        (event.keyCode == 65 && (event.ctrlKey === true || event.metaKey)) || 
         // Allow: home, end, left, right
        (event.keyCode >= 35 && event.keyCode <= 39)) {
             // let it happen, don't do anything
             return;
    }
    else {
        // Ensure that it is a number and stop the keypress
        if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
            event.preventDefault(); 
        }   
    }
于 2013-06-17T14:05:31.320 に答える
-1

イベントを適切にキャンセルするには、スワップonkeypressする必要があります。onkeydown

<input type="text" onkeydown="return AllowOnlyDigit(event)" />
于 2013-06-17T14:05:59.277 に答える