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

时间:2015-03-26 13:51:05

标签: javascript angularjs

我有一个像这样的表单输入

<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。这是预期的还是我需要做的事情?

2 个答案:

答案 0 :(得分:2)

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

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

选中fiddle

答案 1 :(得分:0)

您的required标记中包含input标记。这使它成为必需品。此外,您有ng-disabled="true",这意味着您永远无法填写输入。

您似乎对残疾人的行为有误解。禁用只是意味着您无法将输入放入其中,而不是它不会影响表单。

您实际上是以两种方式滥用残疾人:

  1. 残疾人和一起被要求没有意义(因此你的问题)
  2. 具体使用ng-disabled="true"也毫无意义。 ng-disabled的优点是可以轻松地进行程序化更改。现在你只是硬编码。不妨使用香草disabled
  3. 如果您希望仅在启用输入时才需要输入,而在禁用输入时不需要输入,则可以将两个属性绑定到同一模型:

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