0

我正在尝试制作一个带有两个输入字段和一个“清除”按钮的基本登录表单,该按钮应在单击时将输入字段空白。如何做到这一点?

我知道如何使用 reset() 以反应形式执行此操作,但我不知道如何以模板驱动形式执行此操作。

<form>
  <label>Username:</label>
  <input   name="username" ngModel #name="ngModel" required minlength="4" maxlength="10" appForbiddenName="jedii" type="text">
   <div *ngIf="name.touched && !name.valid">
     <div *ngIf="name.errors.required">username is mandatory</div>
     <div *ngIf="name.errors.minlength">username must be of min 4 characters</div>
     <div *ngIf="name.errors.forbiddenName">username cannot be jedii</div>
   </div> 
  <br><br>
  <label>Password:</label>
  <input type="password" required>
</form>
<br>
<button>Login</button>
<br>
<br>
<button>Clear</button> 

我希望文本字段应重置为空白,但没有任何反应。

4

3 回答 3

1

对于像这样的简单案例,您甚至可以使用type=reset

<form>
    <input type="text"><br>
    <input type="password"><br>
    <button type="reset">Clear</button><br>
    <button type="submit">Login</button>
</form>
于 2019-06-10T13:14:38.103 回答
0

您可以使用表单模板参考,例如

<form (ngSubmit)="onSubmit(login)" #login="ngForm">

在 .ts 文件中,您可以像使用它一样

onSubmit(login: ngForm) {
  login.resetForm();
} 
于 2019-06-10T12:39:51.053 回答
0

您可以使用 ngForm 属性。

点击指导

例子:

<form #testForm="ngForm">
</form>
<button (click)="testForm.reset()">Clear</button>

编辑:应该是resetForm()。你可以阅读指南。谢谢

编辑:最终解决方案

 <form #testForm="ngForm">
        <label>Username:</label>
        <input name="username"
               ngModel
               #name="ngModel"
               required
               minlength="4"
               maxlength="10"
               type="text">

        <br><br>
        <label>Password:</label>
        <input type="password"
               ngModel
               name="password"
               #password="ngModel"
               required>
      </form>
      <br>
      <button>Login</button>
      <br>
      <br>
      <button (click)="testForm.resetForm()">Clear</button>

于 2019-06-10T12:41:28.187 回答