输入无效时禁用按钮

时间:2018-12-27 00:37:11

标签: html angular typescript

我想使某些输入字段仅可用于integerdecimal值。所以我得到了以下代码:

<input type="text" pattern="[0-9]*" [(ngModel)]="myValue" pInputText class="medium-field"
    (change)="calculate()"/>

因此,如果模式与输入不匹配,则会标记此字段。我仍然想在模式不匹配时禁用submit按钮。我可以通过某种方式将该值作为布尔值访问吗?还是有另一种方法?

3 个答案:

答案 0 :(得分:1)

如果您不想使用反应式表格,可以执行以下操作:

<input type="text" pattern="[0-9]*" [(ngModel)]="myValue" #myInput />
<button [disabled]="!myInput.validity.valid">Submit</button>

如果您输入的HTML有效性无效,则会禁用提交按钮。

Here是一个有效的示例。

我还建议您在type="number"中使用input

答案 1 :(得分:1)

如果您输入的内容与模式不匹配,该表格将被自动标记为无效。

您可以使用:

<form novalidate
      #form="ngForm">

     /* Your inputs */

     <button type="button"
             [disabled]="form.invalid">     // form as per the referenced #form="ngForm"
                                            // Disables if your inputs are invalid or doesn't meet with its pattern
         Submit
     </button>

答案 2 :(得分:1)

尝试使用* ngIf和

对其进行表单验证
<button type="submit" [disabled]="form.invalid">SEND</button>