【发布时间】:2018-10-02 23:40:48
【问题描述】:
有什么方法可以在 vue js 的 input type="number" 字段中自动添加逗号?这是我在 Microsoft 中自动更改 IME 选项并禁止用户输入日文字符的唯一方法。
<ui-textbox label="initial" v-model="initial_cost"
name="initial_cost"
v-validate="`numeric|decimal`"
type="number"
v-on:keydown="isNumber"
:maxlength = "18"
:enforceMaxlength="true"
value = 0.00
format="number"
></ui-textbox>
isNumber: function(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
var charval= String.fromCharCode(evt.keyCode);
console.log(typeof evt);
if((charCode >= 48 && charCode <= 57) || (charCode >= 96 && charCode <= 105) || charCode == 8 || charCode == 46 ||
charCode ==36 || charCode ==35){
return true;
}else{
return false;
}
所以如果我用户输入1000,则显示为1,000、10000 到10,000 等等。我已经看到类似这个问题的解决方案here 但似乎他正在使用input type="text" 字段?有什么办法可以将它应用到我在 vue 中的 type="number" 字段?
【问题讨论】:
-
并非所有浏览器都支持。您需要输入
type=text,然后验证javascript中的数字恐怕。请检查这个帖子。 stackoverflow.com/questions/35315157/…。此外,在 w3 规范中,他们明确指出这取决于用户代理。 w3.org/TR/html50/forms.html#number-state-%28type=number%29 -
类型 number 中只允许使用数字和小数点,正如@kavindra 所说,这取决于用户代理,到目前为止,还没有主流浏览器这样做。
-
您是否尝试将那个答案与
type="number"一起使用,但没有奏效? -
@Taki 是的,我已经尝试过了,但未能成功。
-
@Kavindra 我目前有 type= text,但我的问题是如果用户使用日文键盘,我的验证失败。你可以在这里查看我的担忧:stackoverflow.com/questions/49937171/…
标签: javascript vue.js