3

1 から 9 までの数字のみを入力ボックスに入力する方法を知りたいのですが、たとえば 0 を入力すると警告メッセージが表示されます。申し訳ありませんが、有効な数字ではありません。

これまでに行ったが機能していない機能を確認してください..ありがとう

<input name="number1" type="text" size="1" id="number1"onkeyup="doKeyUpValidation(this)/>

doKeyUpValidation(text){
var validationRegex = RegExp(/[-0-9]+/, "g");
if(!validationRegex.match(text.value)
{
 alert('Please enter only numbers.');
}
4

3 に答える 3

1

属性の末尾に終了引用符がonkeyupありません。David が言及しているように、正規表現文字列を次のように変更する必要があります。/[1-9]/

于 2011-05-16T14:55:33.300 に答える
1

あなたはかなり近かった。これを試して:

function doKeyUpValidation(text) {
    var validationRegex = RegExp(/[1-9]+/, "g");  // The regex was wrong
    if( !validationRegex.match(text.value) )
    {
        alert('Please enter only numbers.');
    }
} // this was missing before
于 2011-05-16T14:55:35.100 に答える
0

あなたの HTML は少し間違っています。

<input name="number1" type="text" size="1" id="number1" onkeyup="doKeyUpValidation(this)"/>

各属性の間にはスペースが必要で、各属性は引用符で囲む必要があります。

また、JavaScript にいくつかエラーがあります。そのはず:

function doKeyUpValidation(text) {
    var validationRegex = /[1-9]/g;
    if (!validationRegex.test(text.value)) {
        alert('Please enter only numbers.');
    }
}

関数を作成するには function キーワードが必要ですdoKeyUpValidation。また、正規表現は少しずれていました。

デモ: http://jsfiddle.net/EqhSS/10/

于 2011-05-16T15:02:46.800 に答える