将输入字段中的逗号替换为点

2024-05-08

欧洲国家在输入十进制数字时使用逗号 (,) 而不是点 (.)。所以我想在用户输入时用逗号替换点号。我知道 input=number 可以做到这一点,但我需要对 IE 的支持。

我想指令是最好的选择?我用下面的代码尝试了一下。但它失败了。

  .directive('replaceComma', function(){
    return {
      restrict: 'A',
      replace: true,
      link: function(scope, element, attrs){
        scope.$watch(attrs.ngModel, function (v) {
          var convert = String(v).replace(",",".");
          attrs.NgModel = convert;
        });
      }
    }
  });

转换变量是正确的。但输入框中的值并没有改变。所以我猜 attrs.ngModel = Convert 是错误的吗?


我认为没有必要像指令一样这样做。

说你的模板是

<input ng-model='someModel'>

在你的控制器中,

$scope.$watch('someModel',function(newVal){
    $scope.someModel = newVal.replace(/,/g,'.');
})

ng-model 是双向绑定,所以它应该可以工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将输入字段中的逗号替换为点 的相关文章

随机推荐