Javascript Jquery中的按键事件
我在表单中有许多输入类型。现在我希望用户只能在输入类型中输入整数值。输入可以是这样的110.00在之后只有两个值。但我无法获得此功能 我已经完成了INTEGER输入,但我不知道如何才能做到这一点: 代码Javascript Jquery中的按键事件,javascript,jquery,Javascript,Jquery,我在表单中有许多输入类型。现在我希望用户只能在输入类型中输入整数值。输入可以是这样的110.00在之后只有两个值。但我无法获得此功能 我已经完成了INTEGER输入,但我不知道如何才能做到这一点: 代码 $(".amount_class").live("keypress",function(e){ var charCode = (e.which) ? e.which : e.keyCode; var Enteted = String.fromCharCode(e.
$(".amount_class").live("keypress",function(e){
var charCode = (e.which) ? e.which : e.keyCode;
var Enteted = String.fromCharCode(e.which).toLowerCase();
if ((charCode >= 48 && charCode <= 57) || charCode == 8 || charCode == 9 || charCode == 37 || charCode == 39 || (charCode == 46 && Enteted != '.'))
return true;
else
return false;
});
$(“.amount\u class”).live(“按键”,功能(e){
var charCode=(e.which)?e.which:e.keyCode;
var ented=String.fromCharCode(e.which.toLowerCase();
如果((charCode>=48&&charCode使用如下
HTML
看看这里
Regex-/^\d+(\.\d{0,2})$/g;
我做过实验
$(文档).ready(函数(){
$(“#输入_字段”).keyup(函数(e){
var regex=/^\d+(\.\d{0,2})$/g;
如果(!regex.test(this.value)){
这个值=“”;
}
});
});
逻辑是每次用户输入一个数字时,您必须检查两件事
用户是否输入了小数点
小数点是否超过两位
对于第一个,您可以使用$(this.val().indexOf('.')!=-1
对于第二个,您可以使用$(this.val().substring($(this.val().indexOf('.'),$(this.val().indexOf('.')).length.)2
代码如下:
$('.amount_class').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();
}
});
$('.amount\u class')。按键(函数(事件){
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();
}
});
而我做到了这一点,为我工作得很好:
$('.salary').live("keypress",function(e) {
var charCode = (e.which) ? e.which : e.keyCode;
var Enteted = String.fromCharCode(e.which).toLowerCase();
if(!((charCode >= 48 && charCode <= 57) || charCode == 8 || charCode == 9 || (charCode == 37 && Enteted !='%') || charCode == 39 || charCode == 46)) {
e.preventDefault();
}
if(charCode == 46 && $(this).val().indexOf('.') != -1 && Enteted ==".") {
e.preventDefault();
} // prevent if already dot
if(charCode == 46 && Enteted =="." && !$(this).val()) {
e.preventDefault();
}
if($(this).val().indexOf('.')!=-1){
if($(this).val().split(".")[1].length >= 2){
if(charCode != 8 && charCode != 46) e.preventDefault();
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(2);
}
}
return this;
});
$('.salary').live(“按键”,功能(e){
var charCode=(e.which)?e.which:e.keyCode;
var ented=String.fromCharCode(e.which.toLowerCase();
如果(!((charCode>=48&&charCode=2){
如果(charCode!=8&&charCode!=46)e.preventDefault();
if(isNaN(parseFloat(this.value)))返回;
this.value=parseFloat(this.value).toFixed(2);
}
}
归还这个;
});
只需使用
toFixed值(2);
就是这样。.live
已被弃用。请改用.on
代替。另外,最好是收听keyup
事件,而不是keypress
,但我如何匹配110.00呢?你可以使用这个插件,我使用它,它轻量级且高效:我建议使用本机javascript解决方案,但既然你正在使用jQuery,请看一看@看看@Gaurav会帮你的out@ankur-singhal这是所有的用户输入所有的键,我想要非常具体的只有整数和一个小数,之后只有两个值,比如100.00
<!DOCTYPE html>
<html>
<head>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$('#input_field').keyup(function(e) {
var regex = /^\d+(\.\d{0,2})?$/g;
if (!regex.test(this.value)) {
this.value = '';
}
});
});
</script>
</head>
<body>
<input type= "text" id = "input_field" name ="input_field" value=""/>
</body>
</html>
$('.amount_class').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();
}
});
$('.salary').live("keypress",function(e) {
var charCode = (e.which) ? e.which : e.keyCode;
var Enteted = String.fromCharCode(e.which).toLowerCase();
if(!((charCode >= 48 && charCode <= 57) || charCode == 8 || charCode == 9 || (charCode == 37 && Enteted !='%') || charCode == 39 || charCode == 46)) {
e.preventDefault();
}
if(charCode == 46 && $(this).val().indexOf('.') != -1 && Enteted ==".") {
e.preventDefault();
} // prevent if already dot
if(charCode == 46 && Enteted =="." && !$(this).val()) {
e.preventDefault();
}
if($(this).val().indexOf('.')!=-1){
if($(this).val().split(".")[1].length >= 2){
if(charCode != 8 && charCode != 46) e.preventDefault();
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(2);
}
}
return this;
});