利用ime-mode设置文本框只能输入正整数

html:

<input type="text" id="packageratio"style="ime-mode: disabled;"/>

js:

            $("[id$=ratio]").keydown(function (e) {
                var code = parseInt(e.keyCode);
                if (code >= 96 && code <= 105 || code >= 48 && code <= 57 || code == 8 || code == 37 || code == 39) {
                    //8 退格  37 左箭头  39 右箭头
                    return true;
                } else {
                    return false;
                }
            })

            //文本框输入事件,任何非正整数的输入都重置为1
            $("[id$=ratio]").bind("input propertychange", function () {
                if ($(this).val() != '') {
                    var re = /^[0-9]+$/;
                    if (re.test($(this).val())) {
                        if (isNaN(parseFloat($(this).val())) || parseFloat($(this).val()) <= 0) {
                            $(this).val('1');
                        }
                        else {
                            if (parseFloat($(this).val()) > 9999999999) {
                                $(this).val('9999999999');
                            }
                        }
                    }
                    else {
                        $(this).val($(this).val().replace(/[^0-9]/ig, ""));
                        if ($(this).val() == '') {
                            $(this).val('1');
                        }
                    }
                }
                else {
                    $(this).val('1');
                }
            });
原文地址:https://www.cnblogs.com/SunXiaoLin/p/12020892.html