如何在文本框中输入后编辑十进制数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在文本框中输入后编辑十进制数相关的知识,希望对你有一定的参考价值。

输入像xyxyx.xy这样的十进制数字后,我无法编辑或重新输入数字,例如:文本框中的45682.23

在例如Firefox中,我无法在输入后编辑输入的值。在Chrome中它似乎有效

有人在我的代码中发现了问题吗?

https://jsfiddle.net/s4ywLapp/56/

$('#decimalNumber').keypress(function(event) {

  if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {

    if ((event.which != 46 || $(this).val().indexOf('.') != -1)) {

    }
    event.preventDefault();
  }
  if (this.value.indexOf(".") > -1 && (this.value.split('.')[1].length > 1)) {
    //alert('Two numbers only allowed after decimal point');
    event.preventDefault();
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="decimalNumber" />
答案

您可以包含以下条件以允许编辑整数位

//alert('Two numbers only allowed after decimal point');
    if(this.selectionStart > this.value.length - this.value.split('.')[1].length){
          event.preventDefault();

    }

但是,它仍然很脏。您应该在小数点后2位数时右键修剪按键上的小数位数。

以上是关于如何在文本框中输入后编辑十进制数的主要内容,如果未能解决你的问题,请参考以下文章

VC做串口程序如何把编辑框中的字符串转换成16进制数

如何限制在 MFC 的文本框中键入的字符数?

kendo数字文本框配置,用于在文本框中输入时仅限制两个十进制值

如何在文本中输入十进制数

我在下面的文本框中输入文本后如何将网页下载为 .html/.png 是我的代码

在文本框中显示数据库中的十进制值