haw*_*eye 9 html javascript decimal
我的网站上有一个订单页面.某些订单商品可以包含小数,有些则不能.
防止用户输入小数量的最佳方法是什么?(除了警告框并将字段设置为零)?
jfr*_*d00 14
截取字段的键事件,在输入时检测非法字符,防止它们进入字段并在字段附近添加临时消息(插入页面),以解释允许的字符或值.弹出警报是在打字过程中提供反馈的不好方法.
然后,在提交之前再次进行验证,因为还有其他方法可以将数据导入字段(拖放,复制/粘贴等等),这些方法可能无法捕获所有内容.
这是一个只有整数和仅十进制字段的jQuery示例,当键入无效键时显示临时消息:
工作jsFiddle:http://jsfiddle.net/jfriend00/CkDTy/
$(".integer").keypress(function(e) {
if (e.which < 48 || e.which > 57) {
showAdvice(this, "Integer values only");
return(false);
}
});
$(".decimal").keypress(function(e) {
// 46 is a period
if (e.which != 46 && (e.which < 48 || e.which > 57)) {
showAdvice(this, "Decimal numbers only");
return(false);
}
if (e.which == 46 && this.value.indexOf(".") != -1) {
showAdvice(this, "Only one period allowed in decimal numbers");
return(false); // only one decimal allowed
}
});
function showAdvice(obj, msg) {
$("#singleAdvice").stop(true, false).remove();
$('<span id="singleAdvice" class="advice">' + msg + '</span>').insertAfter(obj);
$("#singleAdvice").delay(4000).fadeOut(1500);
}
Run Code Online (Sandbox Code Playgroud)