我怎样才能让这个数字输入接受逗号?

How can I make this number input accept commas?

我在一个网站中有一个输入,这个输入的类型是数字。因此,我无法输入所需的逗号。

有人可以教我如何只输入数字和逗号吗?

这是我在 ATM 上的输入:

Bedrag: <input type="number" step="any" min="0" name="goed_doel_bedrag" id="goed_doel_bedrag" placeholder="Vul hier het bedrag in">

这需要是小数点逗号(不是千位)。

好的,在这种类型的工作中你应该使用 JS and/or jQuery.

首先创建一个函数:

function commaOnly(input){ 

    var value = input.val();
    var values = value.split("");
    var update = "";
    var transition = "";

    var expression=/(^\d+$)|(^\d+\.\d+$)|[,\.]/;
    var finalExpression=/^([1-9][0-9]*[,\.]?\d{0,3})$/;

    for(id in values){           
        if (expression.test(values[id])==true && values[id]!=''){
            transition+=''+values[id].replace('.',',');
            if(finalExpression.test(transition) == true){
                update+=''+values[id].replace('.',',');
            }
        }
    }
    input.val(update);
}

这会将点变成逗号并且只接受一个逗号。这样,如果有人按下点,它将被更改为逗号,而不是阻止他的输入。

然后将该函数分配给您的输入:

$('#goed_doel_bedrag').keyup(function (e) {
  commaOnly($(this));
});

并更改为输入类型text:

<input type="text" step="any" min="0" name="goed_doel_bedrag" id="goed_doel_bedrag" placeholder="Vul hier het bedrag in">

Fiddle 这里:jSFiddle

如果实现提供的用户界面被编写或配置为接受在数字中使用逗号的本地化输入,则带有 type=numberinput 元素接受逗号。这是由浏览器and/or系统设置决定的,您不能在您的代码中设置。

结论是,只有当您愿意接受用户界面的变化时,这些元素才有用。每个用户都可以按照他的浏览环境规定的方式输入数字,并且浏览器应该将其规范化为特定的内部格式(例如,如果语言环境使用逗号作为小数点分隔符,则将 5,63 转换为 5.63)。

如果你不想这样,你需要使用其他方法,例如type=text