禁用所需输入时,角度形式无效

Angular form is invalid when a required input is disabled

本文关键字:无效 输入      更新时间:2023-09-26

我有一个类似的表单输入

<form name="groupForm" ng-submit="save()" ng-model="selectedItem"  novalidate>
<input 
    required 
    ng-disabled="true" 
    name="searchParameter" 
    type="text" 
    ng-model="criteria.SearchParameter" />
    <a href=""ng-click="save()" ng-class="{groupForm.$invalid}">Save All Changes</a>

当输入的值为null或为空时,声明该特定输入为required的表单无效。这是意料之中的事,还是我需要做些什么?

您可以使用ng-required,并在那里设置一个条件:

<input 
     ng-required ="false"
     ng-disabled="true" 
     name="searchParameter" 
     type="text" 
     ng-model="criteria.SearchParameter" />

检查一下这把小提琴。

您的input标签中有标签required。这就需要它。此外,您有ng-disabled="true",这意味着您将永远无法填写输入。

你似乎对残疾人的行为有误解。禁用只是意味着你不能输入,并不是说它不会影响表单

你实际上在两个方面滥用残疾人:

  1. 残疾和被要求一起没有意义(因此你的问题)
  2. 具体地使用ng-disabled="true"也是没有意义的。ng-disabled的优点是它可以很容易地通过程序进行更改。现在你只是在硬编码。不妨使用香草disabled

如果您希望仅在启用时需要输入,而在禁用时不需要输入,则可以将两个属性绑定到同一模型:

<input 
    ng-required="foo"
    ng-disabled="foo" 
    name="searchParameter" 
    type="text" 
    ng-model="criteria.SearchParameter" />