3

のマスキングを持つ入力フィールドがあり"999999999"ます。英語のキーボードでも問題なく動作しますが、日本語/中国語の文字を入力することもできます (マスキングを破ります)。

入力を英語キーボードの数字のみに制限する方法はありますか?

<input type="text" id="pin" lang="en">

以下も試してみましたがだめでした。

$.fn.onlyNumeric = function(config) {
    var defaults = {
    }
    var options = $.extend(defaults, config);
    return this.each(function(){
        $(this).bind('keyup blur', function(){
            $(this).val($(this).val().replace(/[^0-9]/g, ''));
        });
    });
}

$('#pin').onlyNumeric();

何か助けはありますか?

4

2 に答える 2

1

次のように keypress イベントを使用してみることができます。

$('#pin').on('keypress',function(e){
    if(!$.isNumeric(String.fromCharCode(e.which))) return false;
});

デモを見る

于 2014-01-03T18:25:06.493 に答える