2017-03-07 9 views
1

ログインページを作成していますが、ユーザー名には数字のみを入力したいので、1000を入力しますが、1000tを入力してフォームを送信しようとすると、それ。Javascript - Value.replaceに1文字が含まれています

私は別の方法を試してみましたが、ユーザーが文字を入力することはできませんが、私のコードを使用すると何らかの理由で1文字まで入力できます。私。 1000tを入力できますが、1000tttは入力できません。もし私が1000tとそれに続く "f"を入力しようとすると、tをfに置き換えるので、1000fを得ることができます。しかし、私は数字だけを表示したい

マイスクリプト:

<script> 
function validate(evt){ 
evt.value = evt.value.replace(/[^0-9]/g,""); 
    } 
</script> 

マイ形式:

<form action="customer_login.jsp" method="POST"> 
    Customer Number: <input type="text" name="username" onkeypress="validate(username)" /> 
    <br /> 
    Password: <input type="text" name="password" /> 
    <br /> 
    <input type="submit" value="Login" /> 
</form> 

編集:私はまた、私は1001Aとプレス]タブを入力すると、それは、Aを削除気づいたが、パスワードボックスをクリックすると、パスワードボックスが保持されます。

+3

'<入力の第二のparamからスペースを削除type = "number"> ' –

+0

ほとんどの場合、どうすれば負の数を使用できないのですか? –

+0

@ ssc-hrep3これにより、すべての浮動小数点数が許可されます。 OPのスクリプトから、それは記号のように思え、小数点は除外すべきです。 –

答えて

0

<input type="number">を使用できます。ただし、これには負数、浮動小数点数、特殊数値(10e4など)が含まれます。

正規表現を使用する場合は、thisを使用してJavaScript関数に要素を渡すことができます。次に、要素の値を変更された新しい値で置き換えます。 onkeypressを使用したため、問題が発生しました。このイベントは、キーを押すとすぐに発生します。実際の文字は、キーを離した後にのみ追加されます。だから、代わりにonkeyupを使用する必要があります。ここでは抜粋です。

function validate(element) { 
 
    element.value = element.value.replace(/[^0-9]/g, ''); 
 
}
<form action="customer_login.jsp" method="POST"> 
 
    Customer Number: <input type="text" name="username" onkeyup="validate(this)" /> 
 
    <br /> 
 
    Password: <input type="text" name="password" /> 
 
    <br /> 
 
    <input type="submit" value="Login" /> 
 
</form>

+0

完璧、問題を説明してくれてありがとう。 –

0

利用onkeyup代わりのonkeypressreplace機能を使用でき

function validate(evt){ 
 
\t \t \t \t evt.value = evt.value.replace(/[^0-9]/g,""); \t \t 
 
\t \t \t }
\t \t <form action="login.php" method="POST"> 
 
\t \t Customer Number: <input type="text" id="username" name="username" onkeyup="validate(username)" /> 
 
\t \t <br /> 
 
\t \t Password: <input type="text" name="password" /> 
 
\t \t <br /> 
 
\t \t <input type="submit" value="Login" /> 
 
\t \t </form>

関連する問題