2011-08-09 4 views
4

私は現在アプリケーションを構築していますが、テキストボックスや次のパーセントに数字だけを入力できるjavascriptまたはjquery条件が必要ですが、これを取得する方法がわかりません...見つかったthis次のパーセントを許可しますかテキストボックスには数字と次のパーセント記号のみを使用できますか?

+0

このリンクのどの候補を使用しますか?ほとんどの場合、数字を扱う正規表現を指定するだけで、%がいつも最後に来ると仮定します。 – mrtsherman

答えて

4
$(document).ready(function() { 
    $("#my_input").keypress(function(event) { 
     // Allow only backspace, delete, and percent sign 
     if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 37) { 
      // let it happen, don't do anything 
     } 
     else { 
      // Ensure that it is a number and stop the keypress 
      if (event.keyCode < 48 || event.keyCode > 57) { 
       event.preventDefault(); 
      } 
     } 
    }); 
}); 

デモ:http://jsfiddle.net/AlienWebguy/ufqse/

+0

+1素晴らしいソリューションです。 –

+0

文字をコピーしてテキストフィールドに貼り付けることができます。あなたは答えを更新していただけますか? – Aju

+0

@Ajuその時点で、それを処理する方法を決定するのはあなた次第です。貼り付けられたコンテンツ全体を拒否したり、無効な文字を除外したりしますか?あなたのコメントに「正しい」答えがあるとは言いません。確かに動作する複数のアプローチ。 – AlienWebguy

0

これを試してください。これで、許可するか制限するかを追加できます。

$("textboxSelector").keypress(function(e) { 
    var key = e.which; 
    if ((key < 48 || key > 57) && !(key == 8 || key == 9 || key == 13 || key == 37 || key == 39 || key == 46)){ 
    return false; 
    } 
}); 
+0

-1動作しません:http://jsfiddle.net/AlienWebguy/axEJJ/ – AlienWebguy

+0

文字は、 'keyup'イベントが発生するまでに既に表示されます。私は彼が 'keypress'を使うことを意味すると思う。 – Maverick

+0

@AlienWebguy - 私の答えを編集し、キーアップをkeydownに置き換えた。先ほどありがとうございます。 – ShankarSangoli

2

これは私がこれをkepressで使用されるべきである

if(!parseInt(String.fromCharCode(event.keyCode))) 
     event.preventDefault(); 

思い付いたものですヘヘ

$(".common").submit(function(){ 
    var inputVal = $('#input').val(); 
    var characterReg = /^[0-9]+%?$/; 
    if (!characterReg.test(inputVal)) { 
     alert('in-correct'); 
    } 
    else 
    { 
     alert('correct'); 
    } 
     return false; 
    }); 
+0

これは、最後に数字と/または%のみを許可します –

0

、これを試してみてくださいjqueryイベント。

関連する問題