输入像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位数时右键修剪按键上的小数位数。