Javascript 强制chrome在输入类型=数字中不将点转换为逗号

Javascript 强制chrome在输入类型=数字中不将点转换为逗号,javascript,angularjs,html,google-chrome,Javascript,Angularjs,Html,Google Chrome,我有一个角度应用程序,其中我使用了input type=“number”,其中我从服务中获取值。服务给我这些数字的小数点,例如:0.5、0.6、0.7。 所以我的文本框显示0.5,0.6,0.7 但当我将浏览器语言改为法语时,文本框显示0,5,因为法语中逗号表示小数 <input type="number" value=0.5> Output:French language: 0,5 English language: 0.5 输出:法语:0,5 英语:0.5

我有一个角度应用程序,其中我使用了input type=“number”,其中我从服务中获取值。服务给我这些数字的小数点,例如:0.5、0.6、0.7。 所以我的文本框显示0.5,0.6,0.7 但当我将浏览器语言改为法语时,文本框显示0,5,因为法语中逗号表示小数

<input type="number" value=0.5>

Output:French language: 0,5
       English language: 0.5

输出:法语:0,5
英语:0.5
我不想把点转换成逗号。在angularjs或javascript中是否有任何方法可以阻止浏览器将点转换为逗号?
我不想更改输入的类型,因为存在大量验证。

您可以向HTML标记添加lang属性,如下所示:

<html lang="en">

尝试以下指令。如果它能解决你的问题

directive('smartFloat', function() {
     var FLOAT_REGEXP = /^\-?\d+((\.|\,)\d+)?$/;
     return {
         require: 'ngModel',
         link: function(scope, elm, attrs, ctrl) {
             ctrl.$parsers.unshift(function(viewValue) {
                 if (FLOAT_REGEXP.test(viewValue)) {
                     ctrl.$setValidity('float', true);
                     if(typeof viewValue === "number")
                         return viewValue;
                     else
                         return parseFloat(viewValue.replace(',', '.'));
                 } else {
                    ctrl.$setValidity('float', false);
                    return undefined;
                 }
            });
        }
    };
});
并按如下方式使用:

<input type="text" smartFloat value="0.5" />


我从这个链接中找到了这个:

我已经添加了这个。但是点到逗号的转换仍然会发生。html标记已经有了lang=“en”。但我还是尝试了上述方法。转换仍在进行。客户端不需要注意lang属性:“…lang属性可能被用户代理使用…”(我的重点)。是的,您是对的,它不使用lang=“en”。更新了答案,尽管我没有尝试这个答案。