限制文本框只能输入金额

时间:2022-12-08 21:11:47
也就是说只能输入数字和.(点) 且 小数点后不能超过两位
对于不是数字和点的 要阻止输入

最好用jquery

13 个解决方案

#1


$("input").keypress(function () {
            var reg = $(this).val().match(/\d+(\.\d{1,2})?/);
            var txt = '';
            if (reg != null)
            {
                txt = reg[0];
            }
            $(this).val(txt);
        }).change(function () {
            $(this).keypress();
        });

#2


引用 1 楼 starfd 的回复:
$("input").keypress(function () {
            var reg = $(this).val().match(/\d+(\.\d{1,2})?/);
            var txt = '';
            if (reg != null)
            {
                txt = reg[0];
            }
            $(this).val(txt);
        }).change(function () {
            $(this).keypress();
        });
   这个不能输入点

#3


单独点你也要?

#4


$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了

#5


引用 4 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了
 不是说单独点要,而是金额里要有小数点,输入的时候必然要有,且最后一位不能是小数点

#6


我知道,我已经改好了,之前那个写完没测试过,下面的是测试过了的

引用 4 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了

#7


引用 6 楼 starfd 的回复:
我知道,我已经改好了,之前那个写完没测试过,下面的是测试过了的

Quote: 引用 4 楼 starfd 的回复:

$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了
  这个倒是可以,但最后一位不能是小数点

#8


$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……

#9


引用 8 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……
 高手呀   可否私信我你的QQ号   以后切磋交流啥的

#10


能否限制最多输入5W元呢,,有些银行卡一次最多取5W的嘛

#11


最后的那个挺好用的

#12


貌似可以输入01111

#13


引用 9 楼 q5975166 的回复:
Quote: 引用 8 楼 starfd 的回复:

$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……
 高手呀   可否私信我你的QQ号   以后切磋交流啥的
貌似不能输入0.01这样的?

#1


$("input").keypress(function () {
            var reg = $(this).val().match(/\d+(\.\d{1,2})?/);
            var txt = '';
            if (reg != null)
            {
                txt = reg[0];
            }
            $(this).val(txt);
        }).change(function () {
            $(this).keypress();
        });

#2


引用 1 楼 starfd 的回复:
$("input").keypress(function () {
            var reg = $(this).val().match(/\d+(\.\d{1,2})?/);
            var txt = '';
            if (reg != null)
            {
                txt = reg[0];
            }
            $(this).val(txt);
        }).change(function () {
            $(this).keypress();
        });
   这个不能输入点

#3


单独点你也要?

#4


$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了

#5


引用 4 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了
 不是说单独点要,而是金额里要有小数点,输入的时候必然要有,且最后一位不能是小数点

#6


我知道,我已经改好了,之前那个写完没测试过,下面的是测试过了的

引用 4 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了

#7


引用 6 楼 starfd 的回复:
我知道,我已经改好了,之前那个写完没测试过,下面的是测试过了的

Quote: 引用 4 楼 starfd 的回复:

$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keyup();
            });

这次自测过了
  这个倒是可以,但最后一位不能是小数点

#8


$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……

#9


引用 8 楼 starfd 的回复:
$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……
 高手呀   可否私信我你的QQ号   以后切磋交流啥的

#10


能否限制最多输入5W元呢,,有些银行卡一次最多取5W的嘛

#11


最后的那个挺好用的

#12


貌似可以输入01111

#13


引用 9 楼 q5975166 的回复:
Quote: 引用 8 楼 starfd 的回复:

$("#ipt1").keyup(function () {
                var reg = $(this).val().match(/\d+\.?\d{0,2}/);
                var txt = '';
                if (reg != null) {
                    txt = reg[0];
                }
                $(this).val(txt);
            }).change(function () {
                $(this).keypress();
                var v = $(this).val();
                if (/\.$/.test(v))
                {
                    $(this).val(v.substr(0, v.length - 1));
                }
            });

最后的点也去掉了……
 高手呀   可否私信我你的QQ号   以后切磋交流啥的
貌似不能输入0.01这样的?