如何避免在HTML输入数字上加逗号前的双零?

问题描述 投票:0回答:2

我试图在<input type="number">中接受有效的小数,但在逗号前不接受带有双零或三个零的小数。

这是我的codepen

这是我的HTML输入元素:

<input id="num" step="0.0001" type="number" pattern="[0-9]+([.,][0-9]+)?">

这应该接受那些:(即)

25 

10,25

0,05

0,7

但是不应该接受00,25000,96。因为它们的实际值为0,250,96。但是它们确实返回多个零。

如何避免这些多个零?

谢谢。

html input
2个回答
1
投票

[input标签失去焦点时,jQuery代码将检查是否有多个零,并将其替换为单个1。

 $("#inptNum").focusout(function(){
              var num = this.value.split('.');
              if(num[0] == 0 && num[0].length > 1){
                  this.value = 0+"."+num[1];
              }
          })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input step="0.0001" id="inptNum" type="number" />

0
投票

我准备了一些受@Marios Nikolaou启发的东西:

$("#num").focusout(function(){
   var inputVal = this.value;
   if(inputVal.indexOf(',') != -1){
      var num = inputVal.split(',');
      this.value = parseInt(num)+","+num[1];
   } else if(inputVal.indexOf('.') != -1){
      var num = inputVal.split('.');
      this.value = parseInt(num)+"."+num[1];
   }
});
© www.soinside.com 2019 - 2024. All rights reserved.