0

要素にバインドされたkeypress関数があります。この要素は、正と負の10進文字のみを許可する必要があります。つまり、0〜9、「。」、'-'

文字が入力されないようにする必要があるその他の文字

現在のキープレス機能でこれを達成する方法はありますか?

 $('.test').keyup(function (event) {

     //if character is NOT ok i.e. 0-9, '.' , '-'
     //STOP
     ..ELSE
    //continue to do something

});

PS私はjqueryを使用しています

4

3 に答える 3

1

もう1つの方法は、入力時にすべての不正な文字を置き換えることです。

$("selector").keyup(function (e) {
        this.value = this.value.replace(/[^0-9\.-]/g, '');
    });

ユーザーがテキストを入力せずに貼り付ける場合に便利です。

于 2012-10-26T16:54:40.827 に答える
0

キーはキーダウン時に挿入されるため、代わりにそのイベントを使用する必要があります。次に、これは機能するはずです:

$('.test').on('keyup', function(e){
  e.preventDefault();
  if(e.keyCode >= 48 && e.keyCode <= 57 // regular numbers
     || e.keyCode >= 96 && e.keyCode <= 106 // Numpad
     || e.keyCode === 189 // Minus
  ){
    try{
      parseInt($(this).val());
      // Continue, this is a valid numeric value.
    }catch(ex){
       // Stop
    }
  }else {
    // Stop
  }
});
于 2012-10-26T16:51:14.043 に答える
-1

お役に立てれば:

var string = '-10.56',
    illegal = /[^0-9.-]/.test(string); // return true if illegal character found
于 2012-10-26T16:46:28.500 に答える