0

HTML ページに次のテキスト ボックスがあります。

これまでに使用しているコードは .

<input type="text" id = "points" onkeyup="Validate()">
function Validate(){


var text_value = document.getElementById("points").value;
alert(text_value);

   if (!text_value.match(/^[56789]$/) && document.getElementById(called_id).value !="")
    {
       document.getElementById("points").value="";
       //  document.getElementById("points").focus(); 
       alert("Please Enter only between 5 and 10 ");
    }

}     

受け入れられる値は 5 、 6 、 7 、 8 、 9 、および 10 です。onkeyup イベントに基づいて 5 、 6 、 7 、 8 、および 9 のみを受け入れる方法を見つけました。そこに 10 を含める方法を知りたいです。また、 jquery を使用して同じ onkeyup イベントの検証を知りたいです。

  1. ユーザーがこれら以外の値を指定した場合は、テキスト ボックスの右側に "The value should be between 5 and 10" (アラートとしてではなく) として指定する必要があります。
  2. 最初に入力された値が 1 の場合、次にキーが押されるまで待機する必要があります。0 の場合は受け入れるか、前のケースと同じエラー メッセージを表示します。
4

3 に答える 3

1

働くジャスフィドル

私は正規表現なしを好むでしょう:

function validate() {
    var num = document.getElementById("points2").value;
    var num = parseInt(num, 10);
    alert(num);
    if (num < 5 || num > 10) {
        document.getElementById("points2").value = "";
        alert("Please Enter only between 5 and 10 ");
    }
}

正規表現を次のように変更します。

/^([5-9]|10)$/

onchangeイベントを使用する必要があります:

<input type="text" id = "points"  onchange="Validate()">

function Validate(){    
var text_value = document.getElementById("points").value;
alert(text_value);

   if (!text_value.match(/^([5-9]|10)$/) && document.getElementById(called_id).value !="")
    {
       document.getElementById("points").value="";
       //  document.getElementById("points").focus(); 
       alert("Please Enter only between 5 and 10 ");
    }

}  
于 2013-07-19T07:12:51.757 に答える
0

Zaheer Ahmed が述べたように、/^([5-9]|10)$/10 匹も釣ることができます。イベントリスナーの場合、使用できます

$('#textbox')[0].addEventListener('input', function(event) {
  var value = $(event.target).val();  
  // we already have a reference to the element through the event object,
  // crawling the DOM again is expensive.

  if(value != '') textboxError();
});

これは jQuery を迂回しますが、これは一部の人にとって眉をひそめる可能性がありますが、'input' イベントはすぐに発生し、テキストが貼り付けられた場合や他の方法で入力された場合にも機能します。

于 2016-02-15T04:42:49.453 に答える