问题描述
我正在使用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属性,则提交表单。
发生了什么事以及如何解决? 谢谢!
1楼
Vanojx1
0
2015-08-07 08:40:48
尝试这个:
使用ng-disabled="user.is_admin"
然后在复选框上使用ng-change像这样ng-change="checkUser()"
将功能更改为
$scope.checkUser = function() {
$scope.user = user.get();
};
我想用户的管理状态可以在表单生命周期中更改...否则,您不需要更改事件,只需使用ng-disabled="user.is_admin"
并在控制器内部初始化用户对象
2楼
Starscream1984
0
已采纳
2015-08-07 09:58:59
您的复选框是required
-禁用控件后,它不会设置任何值。
从input type="checkbox"
删除required=""
属性,它应该可以正常工作