Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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-键入时自动将逗号替换为句点(对于输入类型=“number”)_Javascript - Fatal编程技术网

Javascript-键入时自动将逗号替换为句点(对于输入类型=“number”)

Javascript-键入时自动将逗号替换为句点(对于输入类型=“number”),javascript,Javascript,我有一个非常简单的JS代码-目标是在“实时”(即当用户输入时)中用句点替换逗号。例如,当用户键入:43,65时,应将其自动更正为:43.65等: 这是可能的,但只能在输入时输入类型文本输入类型编号不允许数字以外的任何其他符号 var input=document.getElementById('input'); 函数验证(){ input.value=input.value.replace(/,/g,“.”); } 尝试以下代码 仅功能编号(事件){ var key=event.keyCo

我有一个非常简单的JS代码-目标是在“实时”(即当用户输入时)中用句点替换逗号。例如,当用户键入:43,65时,应将其自动更正为:43.65等:


这是可能的,但只能在
输入时输入
类型
文本
<代码>输入
类型
编号
不允许数字以外的任何其他符号

var input=document.getElementById('input');
函数验证(){
input.value=input.value.replace(/,/g,“.”);
}
尝试以下代码

仅功能编号(事件){
var key=event.keyCode;

返回((key>=96&&key=48&&key进一步解释此处发生的情况;如果用户在number
类型的输入中输入数字或小数以外的任何内容,则该值将自动为空。这就是为什么您无法按您希望的方式对输入类型的数字进行操作。如果您想要实现您的目标,您将需要d使用输入类型text
并编写几个javascript函数来创建所需的效果

功能替换(元素){
//设置温度值
var tmp=元素值;
//替换不是数字、逗号或小数的所有内容
tmp=tmp.替换(/[^0-9,.]/g,”);
//用十进制替换逗号
tmp=tmp。替换(/,/,“);
//将元素值设置为新值
element.value=tmp;
}

向文本框添加逗号的函数:

function Comma1(Num) {
    Num += '';
    Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');

    x = Num.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{4})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    return x1 + x2;
}


我认为这有助于您

数字输入允许浮点数。这不应该是数字、句点,而不是逗号。是的,我可以通过type=“text”来实现,但输入附近没有“箭头”(我想html5的目的是让生活更轻松).Hart相信为什么它不允许用JS替换逗号到点。。我会继续努力做到这一点。@Kinduser尝试了什么?输入数字类型允许句点,但不允许逗号。因此它会自动执行OP想要的操作。如果您在欧洲,我们在那里使用逗号作为分隔符,而不是点。但是JS只能使用do进行计算这就是我想自动替换它的原因..输入type=“number”允许在添加时浮动,例如step=“0.01”。您的代码很好-但它可能还应该包括backspace,以便在需要时能够删除条目:@Tom,backspace Addedm可能对某人有用(如果是这样,您可能还希望确保输入接受并留下一个句点-目前它似乎没有…)。