是否有任何方法可以在Vue JS的input type="number"字段中自动添加逗号?这是我在微软中自动更改输入法选项和禁止用户输入日文字符的唯一方法。

<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,0001000010,000等等。我见过类似这个问题的解决方案,但他似乎在使用input type="text"字段?有什么方法可以将此应用于Vue中的type="number"字段吗?

最佳答案

正如上面注释部分所讨论的,不可能用type="number"在输入中添加逗号。它只能在输入type="text"时显示逗号。
您可以在focus上输入number并在blur上输入text,这样用户就不能键入任何非数字的内容,当用户完成键入时,逗号也可以显示。
在名为inputType的数据中添加一个新的反应变量

  data() {
    return {
      inputType: "text"
    };
  }

在ui文本框中更改/添加一些属性
<ui-textbox /*...*/ :type="inputType" @focus="inputType='number'" @blur="inputType='text'">
    <!-- ... -->
</ui-textbox>

这将使type属性成为动态的。聚焦时为number型,模糊时为text型。

关于javascript - 在type = number vue中自动添加逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49972400/

10-12 12:33
查看更多