【发布时间】:2016-07-11 18:21:55
【问题描述】:
下面是我的文本框:
<input type="number" id="payement-textbox'+index+'" name="payment-textbox" min="0" max="100000" step="any" maxlength="9" class="payment" placeholder="--" value=""/>;
我的数字类型文本框有两个验证。首先是用户无法输入大于我成功申请的 99999.99 的值。 另一个是用户不能输入超过小数点后两位数,这是不工作的。
这是我的 jQuery 代码:
$('input.payment').on("change paste keyup", function(event) {
var max = parseFloat($(this).attr('max'));
var num = parseFloat($(this).val());
if ( num >= max)
{
$(this).val("99999.99");
}
if( ($(this).val().indexOf('.') != -1) && ($(this).val().substring($(this).val().indexOf('.')).length > 2))
{
event.preventDefault();
}
});
你能告诉我哪里出错了吗?
【问题讨论】:
-
参考这个链接,希望对你有帮助stackoverflow.com/questions/21796827/…
-
因为它是在输入已经输入之后触发的,所以您需要使用
keydown。请注意,您需要一种方法让用户删除小数点后第二位(例如:检查小数点后第三位并删除最后一个数字)。 -
1) 如果已经在 HTML 中设置了,为什么还要在 jQuery 中进行验证? 2) 您是否尝试过更改
step属性?
标签: javascript jquery html textbox