0

これは、完全に機能し、テキストボックスに数字のみを入力することを検証するコードです。今、私はそこで問題を抱えています。私の問題は、そこに小数値を入力する必要があることです。そのため、TEXT BOX に「DOT」と入力する必要があります。この検証は、ASCII 値を使用して行われています。「DOT -> 249, 250」の ASCII 値も使用します。しかし、うまくいきません。どんな助けでも大歓迎です。

function enterNumerics(e)
{           
    if (!e) var e = window.event;

    if(!e.which) key = e.keyCode; 

    else key = e.which; 

    if((key>=48)&&(key<=57)||key==8||key==9||key==32||key==45 || key==43)
    {
            key=key; 
            document.getElementById('bal').innerHTML ='';
            return true;
    }
    else
    {
       document.getElementById('bal').innerHTML =
            "&nbsp;&nbsp;Please Enter Numerical Values ";
       return false;
    }
}

前もって感謝します.....

4

4 に答える 4

2

代わりに正規表現を使用できます。

function validate(){
    var val=document.getElementById("field").value; //Field value 
    if(/^[0-9\.]+$/.test(val)){    
      document.getElementById('bal').innerHTML='';    
      return true; 
    }else{    
      document.getElementById('bal').innerHTML="  Please Enter Numerical Values ";    
      return false; 
    }
}

次に、 onKeyPress イベントで検証関数を呼び出します

于 2009-08-24T10:09:20.803 に答える
1

ドット キーは 46 です。if ステートメントで許可するだけです。

ああ、あなたはcharCodeではなくkeyCodeを取得しているので、これはkeypressではなくkeydownにあります。上記は無視してください -- ドットは 190 です。

于 2009-08-24T10:16:24.020 に答える
0

dot(.) の ascii コードは、ascii テーブルに従って 249 であるため、e.keyCode が ascii 値を表していない可能性があることを願っています。

于 2013-07-19T23:06:10.617 に答える
0

マスクされた入力を使用すると、問題が解決され、ソリューションが強化されます。

それを行うことができるjQuery-Pluginが利用可能です。

于 2009-08-24T10:09:41.410 に答える