5

この非常に短いクリーンなコードで、テキストフィールドに数字の文字のみを使用できることがわかりました。現在、0〜9の数字とバックスペースおよび削除のみを対象としています。小数/ピリオドも含めたかったので、キーコード110や190を含めるようにこれと戦ってきました。動作させることができません。誰かが私が間違っていることを見ることができますか?

$(document).ready(function() {
    $('input.numberinput').bind('keypress', function(e) { 
return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57) ) || (e.which!=110) ? false : true ;
  });
  });

ここにjsfiddlehttp://jsfiddle.net/justmelat/EN8pT/

html

         <div class="label">Enter a number:</div>
        <input type="text" name="txtNumber1" id="txtNumber1" value=""  class="numberinput" />

         <div class="label">Enter a number:</div>
        <input type="text" name="txtNumber2" id="txtNumber2" value="" class="numberinput" />
    </div>
4

3 に答える 3

6

試す:

$(document).ready(function () {
    $('input.numberinput').bind('keypress', function (e) {
        return !(e.which != 8 && e.which != 0 &&
                (e.which < 48 || e.which > 57) && e.which != 46);
    });
});​

JsFiddle: http: //jsfiddle.net/EN8pT/1/

于 2012-07-13T15:28:04.443 に答える
1

上記の答えで、あなたはまだ有効な数ではない0.23.12.33をすることができます。

http://www.texotela.co.uk/code/jquery/numeric/は、私がよく使用している非常に小さな軽量のプラグインです。それは上記の痛みを取り除きます。

于 2013-07-12T05:02:32.587 に答える
0
$("#input").keydown(function(event) {
 var theEvent = event || window.event;
 var key = theEvent.keyCode || theEvent.which;
    // Allow: backspace, delete, tab, escape, and enter
    if ( key == 46 || key == 8 || key == 9 || key == 27 || key == 13 ||  key == 110 || key == 190 ||
         // Allow: Ctrl+A
        (key == 65 && theEvent.ctrlKey === true) || 
         // Allow: home, end, left, right
        (key >= 35 && key <= 39)) {
             // let it happen, don't do anything
             return;
    }
    else {
        // Ensure that it is a number and stop the keypress
        if (theEvent.shiftKey || (key < 48 || key > 57) && (key < 96 || key > 105 )) {
            theEvent.preventDefault(); 
        }  

    }
});

キーコード110および190

于 2013-09-24T14:13:32.660 に答える