javascript – 用点字符替换逗号

我在AppJs中制作了一个计算应用程序.

基本上它是一堆:

<input type=number>

领域.

为了使它更友好,我认为我应该用点替换所有逗号,以便javascript可以使用实际值来计算.

我尝试使用以下代码进行此操作:

$("input[type=number]").keyup(function(e){
        var key = e.which ? e.which : event.keyCode;
        if(key == 110 || key == 188){
          e.preventDefault();
          var value = $(this).val();         
          $(this).val(value.replace(",","."));
        }   
});

在资源管理器9中,这按预期工作:see fiddle

但是,由于App.js使用铬,我猜这是铬中发生的事情.我该如何解决这个问题?

这是我的应用程序中发生的事情:
输入包含逗号字符的数字时.逗号char移到右侧,当输入框失去焦点时,删除逗号(可能因为type = number中不允许使用逗号字符)

解决方法

当你得到< input type = number>的值时但它无效,则返回空白字符串.您可以通过执行以下操作来检查:

$("input[type=number]").keyup(function(e){
        var key = e.which ? e.which : event.keyCode;
        if(key == 110 || key == 188){
          e.preventDefault();
          var value = $(this).val(); 
          console.log(value === "");        
          $(this).val(value.replace(","."));
        }   
});

它每次都会打印出来.因此,你需要

>因为在keyup事件中,输入已经更改,所以必须将其更改为keydown或keypress事件.
>将value.replace(“,”,“.”)更改为值“.” (因为没有“,”).
>实际上,您需要将其插入光标所在的位置.我有空的时候会更新.

完成的代码

$("input[type=number]").keydown(function (e) {
    var key = e.which ? e.which : event.keyCode;
    if (key == 110 || key == 188) {
        e.preventDefault();
        var value = $(this).val();
        console.log(value);
        $(this).val(value + ".");
    }
});

一个更好的想法可能是使它< input type = text>如果您确实需要此功能,请手动验证.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...