如何让这个数字输入接受逗号?

时间:2015-01-02 09:35:17

标签: javascript php html

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

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

这是我有ATM的输入:

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

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

2 个答案:

答案 0 :(得分:3)

input元素type=number如果实现提供的用户界面被编写或配置为接受使用数字逗号的本地化输入,则接受逗号。这取决于浏览器和/或系统设置,您无法在代码中设置。

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

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

答案 1 :(得分:2)

好的,在这种类型的工作中你应该使用JS和/或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">

在这里小提琴:jSFiddle