Javascript angularjs表单按钮未验证或启用
我有一个angularjs表单,它从范围中提取默认数据。使用默认数据,表单将被验证,从而启用按钮进行提交,但情况正好相反,除非在输入字段中输入数据,这将启用按钮。下面是片段Javascript angularjs表单按钮未验证或启用,javascript,angularjs,Javascript,Angularjs,我有一个angularjs表单,它从范围中提取默认数据。使用默认数据,表单将被验证,从而启用按钮进行提交,但情况正好相反,除非在输入字段中输入数据,这将启用按钮。下面是片段 <div ng-controller="FormValidationController as frmValidationController" class="ui basic segment"> <form class="ui form" name="frmValidation" novalidat
<div ng-controller="FormValidationController as frmValidationController" class="ui basic segment">
<form class="ui form" name="frmValidation" novalidate>
<div ng-class = "{'has-error':frmValidation.option1.$invalid && !frmValidation.option1.$pristine}"
class="required field">
<label>Selection</label>
<input ng-model="option" ng-minlength="3" formcontrol
name="option1" placeholder="Option" type="text"
class="ng-dirty ng-valid ng-touched" required>
<div _ngcontent-c5="" ngxerrors="option1">
<div class="input-error-message" ngxerror="validName" hidden="">
selection should be there
</div>
</div>
<p ng-show = "frmValidation.option1.$invalid && !frmValidation.option1.$pristine"
class = "input-error-message">required</p>
</div>
挑选
选择应该在那里
必需
如果模型有数据,按钮应该在启动时启用,但这永远不会发生,我希望它发生
<button ng-click="submit(); frmValidationController.submitForm(frmValidation.$valid)"
ng-disabled ="!frmValidation.$dirty || frmValidation.$invalid"
class="ui primary button" tabindex="0" type="submit">
Proceed
</button>
继续
问题在于:
ng-disabled ="!frmValidation.$dirty || frmValidation.$invalid"
具体而言:
!frmValidation.$dirty
只有当实际用户与表单交互时,表单才是脏的。因为您正在加载默认数据,所以表单填写正确,但用户没有触摸或“弄脏”它
删除该复选框,我相信它会像预期的那样工作。分而治之。当您有少量代码,但问题的来源完全不清楚时,请开始一次删除一点代码,直到问题消失。对可能出现的问题没有深入了解设置
class=“ng dirty”
不会将$dirty
状态设置为true
。ngModelController
忽略类设置。设置class=“ng valid”
不会将$valid
状态设置为true
。ngModelController
忽略类设置。所以我应该只使用这个>>!frmValidation.$dirty在formIt中看起来不需要使用!frmValidation.$dirty
。您应该只将frmValidation.$invalid
绑定到ng=disabled。