Javascript 在提交表格之前,在angular'上更改输入值;s指令

Javascript 在提交表格之前,在angular'上更改输入值;s指令,javascript,jquery,forms,angularjs,angularjs-directive,Javascript,Jquery,Forms,Angularjs,Angularjs Directive,我有一个自定义指令,将数字掩码应用于文本输入。因此,我有如下值的输入:999.999.999。我的问题是,在提交表单将“干净”值发送到服务器端之前,我想将此值更改为99999999。问题是:如何在mi指令内部执行此操作? 我试图在我的链接函数中使用以下代码,但是,我有点迷路了 $(_element).parents('form').submit( function() { //I don't know how to change the input value here... r

我有一个自定义指令,将数字掩码应用于文本输入。因此,我有如下值的输入:999.999.999。我的问题是,在提交表单将“干净”值发送到服务器端之前,我想将此值更改为99999999。问题是:如何在mi指令内部执行此操作?

我试图在我的链接函数中使用以下代码,但是,我有点迷路了

$(_element).parents('form').submit( function() {
    //I don't know how to change the input value here...
    return true;
});
使用以下命令:

$(_element).parents('form').submit( function() {
  $('input').val().replace('.', ''); 
  return true;
});
这将替换输入值,要替换的值将为
,要替换的值将为零。所以你会得到想要的答案

使用以下命令:

$(_element).parents('form').submit( function() {
  $('input').val().replace('.', ''); 
  return true;
});
这将替换输入值,要替换的值将为
,要替换的值将为零。所以你会得到想要的答案

使用以下命令:

$(_element).parents('form').submit( function() {
  $('input').val().replace('.', ''); 
  return true;
});
这将替换输入值,要替换的值将为
,要替换的值将为零。所以你会得到想要的答案

使用以下命令:

$(_element).parents('form').submit( function() {
  $('input').val().replace('.', ''); 
  return true;
});

这将替换输入值,要替换的值将为
,要替换的值将为零。所以你会得到想要的答案

简单的回答是,您需要获取+设置元素的值,使用(例如)一个简单的正则表达式删除点:

var enteredValue = $(_element).val();
$(_element).val(enteredValue.replace(/\./g,''));
然而,与Angular的表单处理集成可能是一个好主意,它有许多钩子以这种方式处理输入的验证和处理。具体来说,使用Angular的$Parser,它处理用户输入的值,并且只允许“好”值进入范围中的模型。您可能可以在现有的自定义指令中执行此操作,也可以在下面单独的指令中执行此操作:

app.directive('cleanNumber', function() {
  return {
    require: 'ngModel',
    link: function link(scope, iElement, iAttrs, ngModelController) {
      ngModelController.$parsers.push(function(val) {
        return val.replace(/\./g,'');
      });
    }
  };
});
您可以将其用作属性:

<input type="text" name="number" ng-model="number" clean-number />

然后,您可以使用ngSubmit指令调用函数来提交表单:

<form name="myForm" ng-submit="submit()">
  ...
  <button type="submit">Submit!</button>
</form>

...
提交

然后,处理后的值在作用域中可用,即
$scope.number
。您可以在中看到这一点。

简单的回答是,您需要获取并设置元素的值,使用(例如)一个简单的正则表达式删除点:

var enteredValue = $(_element).val();
$(_element).val(enteredValue.replace(/\./g,''));
然而,与Angular的表单处理集成可能是一个好主意,它有许多钩子以这种方式处理输入的验证和处理。具体来说,使用Angular的$Parser,它处理用户输入的值,并且只允许“好”值进入范围中的模型。您可能可以在现有的自定义指令中执行此操作,也可以在下面单独的指令中执行此操作:

app.directive('cleanNumber', function() {
  return {
    require: 'ngModel',
    link: function link(scope, iElement, iAttrs, ngModelController) {
      ngModelController.$parsers.push(function(val) {
        return val.replace(/\./g,'');
      });
    }
  };
});
您可以将其用作属性:

<input type="text" name="number" ng-model="number" clean-number />

然后,您可以使用ngSubmit指令调用函数来提交表单:

<form name="myForm" ng-submit="submit()">
  ...
  <button type="submit">Submit!</button>
</form>

...
提交

然后,处理后的值在作用域中可用,即
$scope.number
。您可以在中看到这一点。

简单的回答是,您需要获取并设置元素的值,使用(例如)一个简单的正则表达式删除点:

var enteredValue = $(_element).val();
$(_element).val(enteredValue.replace(/\./g,''));
然而,与Angular的表单处理集成可能是一个好主意,它有许多钩子以这种方式处理输入的验证和处理。具体来说,使用Angular的$Parser,它处理用户输入的值,并且只允许“好”值进入范围中的模型。您可能可以在现有的自定义指令中执行此操作,也可以在下面单独的指令中执行此操作:

app.directive('cleanNumber', function() {
  return {
    require: 'ngModel',
    link: function link(scope, iElement, iAttrs, ngModelController) {
      ngModelController.$parsers.push(function(val) {
        return val.replace(/\./g,'');
      });
    }
  };
});
您可以将其用作属性:

<input type="text" name="number" ng-model="number" clean-number />

然后,您可以使用ngSubmit指令调用函数来提交表单:

<form name="myForm" ng-submit="submit()">
  ...
  <button type="submit">Submit!</button>
</form>

...
提交

然后,处理后的值在作用域中可用,即
$scope.number
。您可以在中看到这一点。

简单的回答是,您需要获取并设置元素的值,使用(例如)一个简单的正则表达式删除点:

var enteredValue = $(_element).val();
$(_element).val(enteredValue.replace(/\./g,''));
然而,与Angular的表单处理集成可能是一个好主意,它有许多钩子以这种方式处理输入的验证和处理。具体来说,使用Angular的$Parser,它处理用户输入的值,并且只允许“好”值进入范围中的模型。您可能可以在现有的自定义指令中执行此操作,也可以在下面单独的指令中执行此操作:

app.directive('cleanNumber', function() {
  return {
    require: 'ngModel',
    link: function link(scope, iElement, iAttrs, ngModelController) {
      ngModelController.$parsers.push(function(val) {
        return val.replace(/\./g,'');
      });
    }
  };
});
您可以将其用作属性:

<input type="text" name="number" ng-model="number" clean-number />

然后,您可以使用ngSubmit指令调用函数来提交表单:

<form name="myForm" ng-submit="submit()">
  ...
  <button type="submit">Submit!</button>
</form>

...
提交
然后,处理后的值在作用域中可用,即
$scope.number
。您可以在中看到这一点