Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使此数字输入接受逗号?_Javascript_Php_Html - Fatal编程技术网

Javascript 如何使此数字输入接受逗号?

Javascript 如何使此数字输入接受逗号?,javascript,php,html,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"> 床单: 这需要是一个小数点逗号(不是千)。好的,在这种类型的作业中,您应该使用JS

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

有人能教我如何只输入数字和逗号吗

这是我在ATM机上的输入:

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

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

好的,在这种类型的作业中,您应该使用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">


在这里摆弄:

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


在这里摆弄:

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

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


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

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

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


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

当您使用HTML5输入类型时,您要求浏览器控制它,您没有详细的控制。是的。。。Internet Explorer 9和早期版本不支持输入标记的step属性。是否有方法将我现在的输入转换为仅能获取逗号和数字的其他输入?是否使用逗号作为十进制分隔符或千位分隔符?当使用HTML5输入类型时,类似于5,63欧元的十进制,你要求浏览器控制它,你没有详细的控制权。是的。。。Internet Explorer 9和早期版本不支持输入标记的step属性。是否有方法将我现在的输入转换为仅能获取逗号和数字的其他内容?是否使用逗号作为十进制分隔符或千位分隔符?类似十进制的5,63欧元欢迎使用。有关使用
文本
而不是
数字
作为输入的更多信息,请参阅Jukka K.Korpela答案。欢迎光临。有关使用
文本
而不是
数字
作为输入的更多数据,请参阅Jukka K.Korpela答案。