繁体   English   中英

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

[英]Force chrome not to convert dot to comma in 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

我不希望这个点转换为逗号。 在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" />

我从这个链接找到了这个: http//www.wmyl.se/en/blog/comma-dot-input-typenumber-mess/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM