Javascript 允许html输入框只输入一个完整的数字和精确的小数。5

Javascript 允许html输入框只输入一个完整的数字和精确的小数。5,javascript,html,onkeypress,Javascript,Html,Onkeypress,我正在制作一个web应用程序,要求用户输入小数点后一位的数字。我限制用户输入其他无法使用此javascript代码的字符 html javascript function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode != 46 && charCode > 31 &&

我正在制作一个web应用程序,要求用户输入小数点后一位的数字。我限制用户输入其他无法使用此javascript代码的字符

html


javascript

function isNumberKey(evt) {
          var charCode = (evt.which) ? evt.which : evt.keyCode;
          if (charCode != 46 && charCode > 31 &&
             (charCode < 48 || charCode > 57))
             return false;
          return true;
         }  
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode!=46&&charCode>31&&
(字符编码<48 | |字符编码>57))
返回false;
返回true;
}  
但此功能仅阻止用户输入数字以外的字符。 我需要防止用户输入超过一个小数位,以及输入的小数位应该是

是这样的

  • 如果用户输入5.55,则应替换为5.5或防止用户输入额外的小数

  • 如果用户输入5.2或任何小数点,则应将其替换为5.5,换句话说,用户只能输入带小数点的数字。5

如何使用当前的onkeypress功能实现这一点


这不是另一个问题的重复。停止标记此项

您可以将数字分成两部分:

第1部分为自然数

第2部分为十进制数

然后,您可以将任何输入的十进制数替换为
.5

大概是这样的:

$('input').keyup(函数(){
var值=此值;
var pos=指数(“.”)的值;
var结果;
如果(位置!=-1){
var part1=值substr(0,位置);
var part2=子项(位置)的值;
结果=零件1+零件2。更换(零件2,“.5”)
$('input').val(结果);
}
});
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode!=46&&charCode>31&&
(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

您可以将数字分成两部分:

第1部分为自然数

第2部分为十进制数

然后,您可以将任何输入的十进制数替换为
.5

大概是这样的:

$('input').keyup(函数(){
var值=此值;
var pos=指数(“.”)的值;
var结果;
如果(位置!=-1){
var part1=值substr(0,位置);
var part2=子项(位置)的值;
结果=零件1+零件2。更换(零件2,“.5”)
$('input').val(结果);
}
});
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode!=46&&charCode>31&&
(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

使用此

$('#cntday').keyup(function() {
    if(this.value %1 != 0.5){
        this.value = this.value - this.value%1 + 0.5;
    }
});
该条件检查是否输入了十进制数,一旦输入了十进制数并输入了数字,它就会将其更改为。5 它满足您提到的两个要求。 在这里检查它

使用这个

$('#cntday').keyup(function() {
    if(this.value %1 != 0.5){
        this.value = this.value - this.value%1 + 0.5;
    }
});
该条件检查是否输入了十进制数,一旦输入了十进制数并输入了数字,它就会将其更改为。5 它满足您提到的两个要求。 在这里检查