5

AngularJs では、すべてのモデルを空のオブジェクトに設定してフォームを「リセット」しようとすると、入力がtype="email"これである場合はクリアされないようです。type="text"ただし、変更すると機能しますが、検証時に赤い境界線が失われます。

メールタイプの入力をリセットまたはクリアする方法はありますか?

ありがとう!

4

3 に答える 3

2

記録のために、説明については OP コメントを参照し、デモについてはこのプランカーを参照してください。

于 2013-04-21T22:03:15.787 に答える
1

私の場合、ng-disabledディレクティブを使用してスコープにバインドされた検証フォーム ボタンを使用する場合、二重のリセット ロジックを使用する必要がありました。

<form>
    <input type="email" ng-model="formdata.email" />
    <button class="btn btn-warning cancel" type="reset" ng-click="formdata = {}">Clear</button>
    <button type="submit" ng-disabled="form.$invalid" />
</form>
  • type="reset": 無効な電子メールが現在フィールドに入力されている場合でもフィールドをクリアするため (この属性がないと、無効な電子メールは によって削除されませんng-click)

  • ng-click="formdata = {}": すべてのスコープ バインディングを再初期化します。それがないと、フォームをリセットするときに ng-disabled が更新されず、リセット後も検証ボタンが有効になります...

于 2014-05-27T12:22:31.460 に答える
0

その理由は、メール フィールドが有効になるまで、モデルがまだバインドされていないためです。そのmyModel = {}ため、テキスト フィールドは無効な電子メールを保持しています。ただし、myModel.Email = ''これを行うと、テキストフィールドが消去されます

于 2014-07-18T15:09:04.267 に答える