我在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 + "."); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。