jquery - 将小数点放在从右到左键按下事件的第 2 位之后
问题描述
当用户输入数字时,我需要从右到左按此顺序编号
00.01
00.12
01.23
12.34
像最初的“00”。应该在那里。大多数解决方案是在聚焦事件后限制 2 个位置的值或转换为小数
我尝试了这段代码,但无法获得正确的逻辑
http://jsfiddle.net/BB7pS/310/
$(document).ready( function(e){
$('#input').keydown( function(e){
var s1=$(this).val();
if (s1.length <2)
{
s1 = '0.0' + s1;
$(this).val(s1);
e.preventdefault();
}
if (s1.length < 5)
{
s1='';
s1=$(this).val().slice(3);
s1 = '0.' + s1;
$(this).val(s1);
}
});
});
我需要一些建议如何实现。谢谢
解决方案
您可以尝试以下逻辑来替换keyup
事件中的字符和小数
$(document).ready( function(e){
$('#input').keyup( function(e){
var s1=$(this).val();
if(s1){
s1 = s1.replace(".","");
s1 = "000" + s1; // append zeros so that 00.0X can be achieved
var position = s1.length - 2; //calculate decimal position which is before last 2 digits
var output = [s1.slice(0, position), ".", s1.slice(position)].join(''); // create string with decimal
console.log(output);
$(this).val(parseFloat(output).toFixed(2)); // push the value to input
} else {
$(this).val("00.00");
}
});
});
推荐阅读
- python - 用于将字典列表切换到列表字典的高效衬垫
- python-3.x - 在等待加载基于 Ajax 的卡详细信息时,我应该对 selenium.webdriver.support.expected_conditions 对象使用哪种方法?
- flutter - Flutter Web Http错误:未捕获(承诺)错误:XMLHttpRequest错误
- vim - 如何为 vim-slime 插件设置垂直拆分终端?
- matlab - Matlab中的毕达哥拉斯三元组
- google-drive-api - 您如何查看 Google Drive 中的 PostScript .LOG 文件?
- python - 函数和循环 Python
- postgresql - 适用于 Postgres 的 GCP Cloud SQL 查询日志记录
- javascript - 更新 Mongoose 中的嵌套对象数组
- go - 本地方法调用导致:未声明的名称:[名称]