0
`http://plnkr.co/edit/kAt9B3GrO8m8TT7lUHt6?p=preview`

こんにちは、すべての値を null にするのではなく、より少ないステップでフォームの値をリセットする方法を教えてください。

アルファベットを許可するパターンがあり、フォームをリセットしようとすると、入力とエラーメッセージの両方が消えてしまいます。$setPristine は、正しいパターンを入力してリセットした場合にのみフォームをクリアしますが、リセット時に 453453 / =-=- のような間違った入力をエラー スタイルと共に削除したいと考えています。

助けてください..

4

2 に答える 2

1

この問題を次のように解決しました。

var input = angular.element('#[inputId]').val(); 

このようにして、無効な各フィールドの値にアクセスし、スコープ内の値が定義されていない場合にのみこれを確認できます。私の場合、すべてのスコープ フィールドは以前に null 値で構成されています。このようにして、ng-pattern ディレクティブで無効なフィールドを簡単に認識できます。

例:

$scope.reset = function() {
   if($scope.formValues === undefined){
    var input1 = angular.element('#inputId1').val("");
    var input2 = angular.element('#inputId2').val("");
   }
   else{
   ...
   }
}
于 2016-08-08T08:13:45.413 に答える
1

すべてのフィールドをリセットする場合は、angular docs の例に従い、マスターを使用してデータをコピーできます。

無効なフィールドだけをリセットしたい場合は、各フィールドをチェックして、無効な場合はリセットする必要があります。

プランカーを更新します。

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $compile) {
  'use strict';
  $scope.master = {
    name: ""
  };
  $scope.data = angular.copy($scope.master);
  $scope.reset = function() {
    $scope.data = angular.copy($scope.master);
    $scope.form.$setPristine();
  }
});

http://plnkr.co/edit/3gFGSjA9kArzn7uNanIu?p=preview

于 2015-03-19T18:44:55.237 に答える