我有一个角度应用程序,其中我使用了输入类型=“数字”,其中我从服务中获取值。该服务以小数点给我这些数字例如: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中有什么方法可以阻止浏览器将点转换为逗号吗? 我不想改变输入的类型,因为有很多验证。
答案 0 :(得分:1)
您可以在HTML标记中添加 lang 属性,如下所示:
<html lang="en">
答案 1 :(得分:-1)
尝试以下指令。如果它解决了你的问题。
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/