Javascript 文本框仅允许十进制数字、删除和退格
我有一个适用于十进制数的代码,只允许十进制数后有两位数字。我的问题是如何将代码修改为:Javascript 文本框仅允许十进制数字、删除和退格,javascript,jquery,html,Javascript,Jquery,Html,我有一个适用于十进制数的代码,只允许十进制数后有两位数字。我的问题是如何将代码修改为: 允许退格、删除和删除 如何使代码动态,使其不使用id属性,而是在html上传递方法中的元素,并在javascript/jquery中接受和使用该元素 这是我的密码: 函数isNumberKey(evt,元素){ var charCode=(evt.which)?evt.which:event.keyCode 如果(字符码>31&(字符码57)) 返回false; 否则{ var len=$('#rate')
id
属性,而是在html上传递方法中的元素,并在javascript
/jquery
中接受和使用该元素函数isNumberKey(evt,元素){
var charCode=(evt.which)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57))
返回false;
否则{
var len=$('#rate').val().length;
var指数=$('#rate').val().indexOf('.');
如果(索引>0&&charCode==46){
返回false;
}
如果(索引>0){
var CharAfterdot=(len+1)-指数;
如果(字符点>3){
返回false;
}
}
}
返回true;
}
在您的
文本框中添加一个类
,在此处和下方说数字
,代码将为您完成此操作:
$('.number').on('keypress',function (event) {
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
var text = $(this).val();
if ((text.indexOf('.') != -1) && (text.substring(text.indexOf('.')).length > 2)) {
event.preventDefault();
}
});
$('.number')。打开('keypress',函数(事件){
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
var text=$(this.val();
if((text.indexOf('.')!=-1)和&(text.substring(text.indexOf('.')).length>2)){
event.preventDefault();
}
});
注意:您的代码不允许在文本框中输入
我找到了解决办法。在这里为任何与我有相同需求的人添加代码
/*
*函数允许在文本框中输入十进制数
*-允许整数、退格和删除
*-不允许使用字母表
*-仅允许一个小数点
*-仅允许小数点后两位数字
*/
函数isNumberKey(evt,元素){
var charCode=(evt.which)?evt.which:window.event.keyCode;
如果(charCode>31&&(charCode<48 | | charCode>57)&&!(charCode==46 | | charCode==8))
返回false;
否则{
var len=$(元素).val().length;
var index=$(element.val().indexOf('.');
如果(索引>0&&charCode==46){
返回false;
}
如果(索引>0){
var CharAfterdot=(len+1)-指数;
如果(字符点>3){
返回false;
}
}
}
返回true;
}
我想使我的代码动态化,这样就可以在任何html元素上使用它。不想硬编码任何属性值。这适用于所有具有classnumber
的input
元素!通过动态,您在这里如何描述它?