在Web开发中,经常需要限制用户只能输入数字和小数点,这在金额、数量等数值输入场景中尤为重要。本文将详细介绍如何使用jQuery实现这一功能。
通过jQuery的事件监听,我们可以捕获用户的键盘输入,然后使用正则表达式验证输入内容,过滤掉非数字和小数点的字符。
$(document).ready(function(){
$('.number-input').on('keypress', function(e) {
// 允许数字0-9
if(e.which >= 48 && e.which <= 57) return true;
// 允许小数点(.)
if(e.which === 46) {
// 检查是否已存在小数点
if($(this).val().indexOf('.') !== -1) return false;
return true;
}
// 允许退格、删除、左右方向键
if(e.which === 0 || e.which === 8 || e.which === 46 ||
(e.which >= 37 && e.which <= 40)) return true;
return false;
});
// 粘贴时验证
$('.number-input').on('paste', function(e) {
var clipboardData = e.originalEvent.clipboardData || window.clipboardData;
var pastedData = clipboardData.getData('text');
if(!/^[0-9.]*$/.test(pastedData)) {
e.preventDefault();
}
});
});
为了更好的用户体验,可以添加以下功能:
本方案兼容所有主流浏览器,包括IE9+、Chrome、Firefox、Safari等。如需支持更老版本浏览器,可能需要额外处理。