如果表单中特定输入的值为空,我尝试禁用materializecss按钮,但是如果表单是$ pristine而不是输入,我只能使用ng-disable成功禁用它。
这有效:
data-ng-disabled="mainDetailsForm.$pristine"
但这并不是:
data-ng-disabled="mainDetailsForm.niNumberInput.$pristine"
并且没有:
data-ng-disabled="niNumberInput.$pristine"
-
JSFiddle:https://jsfiddle.net/6qswosh8/。
-
完整HTML:
<form id="mainDetailsForm" name="mainDetailsForm">
<div class="row">
<div input-field class="input-field col-xs-12 col-md-4">
<input id="niNumberInput" name="niNumberInput" type="text" class="validate" pattern=".{9}" placeholder="National Insurance Number">
<label for="niNumberInput" data-error="National Insurance number must be 9 characters long">National Insurance Number</label>
</div>
<div input-field class="input-field col-xs-12 col-md-1">
<button data-ng-disabled="mainDetailsForm.niNumberInput.$pristine" class="btn button waves-effect"><span class="fa fa-search"></span>Verify</button>
</div>
</div>
</form>
答案 0 :(得分:0)
要通过表单访问各个输入的属性,您需要为输入提供ng-model。 ng-model属性是绑定它的东西。我更新了你的jsfiddle https://jsfiddle.net/dougefresh/6qswosh8/1/(我还必须在小提琴中正确地工作)。
ID Treatment
0 --20AxECvv- B-C-A
1 --h9INKewQf- B-A
2 QUeSNEXmdB A-C
3 qu72Ql@h79 C
4 zZU7a@8jN C
文档中的这一小行很重要&#34;为了允许表单和控件的样式,ngModel添加了这些CSS类:&#34;它列出了$ dirty,$ pristine等。文档明确说明他们必须使用ng-model。 https://docs.angularjs.org/guide/forms