Angular.js - ng-disabled在复选框上,仍然提交一个有效的表单
Angular.js - ng-disabled on checkbox and still submit a valid form?
我正在使用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属性,表单就会提交。
发生了什么事?如何解决?谢谢!
您的复选框是required
-当控件被禁用时,它不设置任何值。
从input type="checkbox"
中删除required=""
属性,它应该像您期望的那样工作
try this:
使用ng-disabled="user.is_admin"
,然后像这样使用ng-change复选框ng-change="checkUser()"
将函数更改为
$scope.checkUser = function() {
$scope.user = user.get();
};
我猜用户的admin状态可以在表单生命周期中改变…否则你不需要change事件,只需使用ng-disabled="user.is_admin"
并初始化控制器内的user对象
相关文章:
- jquery mobile上多个页面上的一个表单
- 循环遍历包含另一个表单的表单
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如何通过 JS 将内容从一个表单中的一个文本框复制到另一个表单中的另一个文本框
- Slding表单不会一次显示一个表单
- html链接onclick弹出一个表单
- 使用 javascript 将值从一个表单传递到另一个表单
- 当在一个表单中进行更改时,ng-disabled 会触发所有表单验证
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- 如何在一个表单标记中验证多个字段集
- 如何从一个表单的输入字段中获取数据,并使用JQuery在不同的表单中填充相同的输入类型
- 在PHP中将下拉选择列表的内容从一个表单传递到另一个表单
- 一个表单包含多个提交操作
- Javascript-更正用户名和密码以启用另一个表单
- 在ul后面添加一个表单
- angular js如何在提交一个表单时验证另一个表单
- 如何将某些HTML从一个页面转换为另一个表单
- 使用JavaScript将数据从一个表单显示到另一个页面
- 两个表单,一个选择/下拉框-需要将选择值从一个表单复制到另一个表单