我正在使用angular.js并尝试在实际提交之前验证表单。到目前为止,这是我的HTML:
<form name="form" class="css-form" novalidate>
<table>
<tr>
<td>
<input type="text" ng-model="branch.phone_number" name="uPhone" required="" />
<br />
<div ng-show="form.$submitted || form.uPhone.$touched">
<div ng-show="form.uPhone.$error.required">Insert phone number!</div>
</div>
</td>
</tr>
<tr>
<td>
<input type="checkbox" ng-model="branch.approved" ng-checked="branch.approved === 1" required="" ng-disabled="checkUser()" />
</td>
<tr/>
<tr>
<td align="right">
<input type="button" ng-click="reset()" value="Reset" />
</td>
<tr/>
<tr>
<td align="left">
<input type="submit" ng-click="form.$valid && save()" value="Save" />
</td>
</tr>
</table>
</form>
这是我的checkUser
功能:
$scope.checkUser = function() {
return (user.get().is_admin === 1) ? false : true;
};
基本上,如果ng-model="branch.approved"
不真实,表单将不允许提交。如果我删除ng-disabled属性,则表单提交。
发生了什么以及如何解决?谢谢!
答案 0 :(得分:0)
试试这个:
使用ng-disabled="user.is_admin"
然后在ng-change="checkUser()"
将功能更改为
$scope.checkUser = function() {
$scope.user = user.get();
};
我猜用户管理状态可以在表单生命期间更改...否则您不需要更改事件只需使用ng-disabled="user.is_admin"
并初始化控制器内的用户对象
答案 1 :(得分:0)
您的复选框为required
- 当控件被禁用时,它没有设置任何值。
从required=""
移除input type="checkbox"
属性,它应该按预期工作