我在网站上有一个输入,这个输入的类型是数字。因此,我无法输入所需的逗号。
有人可以教我如何只输入我的输入数字和逗号吗?
这是我有自动取款机的输入:
Bedrag: <input type="number" step="any" min="0" name="goed_doel_bedrag" id="goed_doel_bedrag" placeholder="Vul hier het bedrag in">
这需要是一个小数点逗号(不是千)。
如果
实现提供的用户界面被编写或配置为接受使用数字逗号的本地化输入,则具有type=number
的input
元素接受逗号。这是由浏览器和/或系统设置决定的,您无法在代码中进行设置。
结论是,只有当您愿意接受用户界面的变化时,这些元素才有用。每个用户都可以按照其浏览环境规定的方式输入数字,并且浏览器应将其规范化为特定的内部格式(例如,如果区域设置使用逗号作为小数分隔符,则将 5,63 转换为 5.63)。
如果您不想这样做,则需要使用其他方法,例如 type=text
.
好的,在这种类型的作业中,你应该使用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