Angularjs,检查是否已选择表单中的单选按钮
Angularjs, checking if radio buttons in form have been selected
我从AngularJS开始,构建一个多步骤表单,用户必须填写不同的页面。完成一页后,他可以按下下一个按钮并填写下一页。
对于第一个页面,我在HMTL中构建了一个表单(名为pageOneForm
),具有不同的文本输入字段,标记为required
,在相对的控制器中,我正在执行此任务:
$scope.$watch('pageOneForm.$valid', function(validity) {
ModelData.actualPageCompleted = validity;
})
它就像一个魔术。我的型号(ModelData
)已更新。
我试图将同样的逻辑应用于应用程序的以下部分,即第二页。用户必须从两个不同的单选按钮组中选择两个选项,而不是输入文本。所以我通过ng-repeat
:在html中构建了一个按钮列表
<div ng-Controller="PageTwo" ng-show='data.actualPage == 2'>
<form name="pageTwoForm">
<h3>General Information > Knowledge About </h3>
<div>
<b>User</b>
<div ng-repeat="option in userOptions">
<input type="radio" name="userGroups" ng-model="data.knowledgeAboutUser" ng-value="option.id" id="{{option.id}}" required>{{option.text}}
</div>
<div ng-repeat="option in targetGroupUserOptions">
<input type="radio" name = "targetUserGroup" ng-model="data.knowledgeAboutTargetGroup" ng-value="option.id" id="{{option.id}}" required>{{option.text}}
</div>
</div>
</form>
我在它的控制器中实现了与上面相同的代码:
$scope.$watch('pageTwoForm.$valid', function(validity) {
ModelData.actualPageCompleted = validity;
})
但显然它不起作用,在我的模型中actualPageCompleted
总是正确的。。。我做错了什么?感谢
我尽了最大努力创建了一个带有一些伪数据的控制器,以使其能够处理您的示例代码。这是fiddle你需要强制$digest循环在点击单选按钮时更新你的表单的有效性状态(更多细节请参阅这篇SO文章),这就是为什么方法
$scope.forceDigest = function(){
setTimeout(function(){ $rootScope.$$phase || $rootScope.$apply(); });
};
是必要的。或者,您可以取消方法调用并取消注释html代码
<h3 ng-show="false">{{data.knowledgeAboutTargetGroup}}</h3>
<h3 ng-show="false">{{data.knowledgeAboutUser}}</h3>
以强制表单对象也进行更新。
我会确保ModelData.actualPageCompleted
不会从pageOneForm.$valid
变为真并被设置时起保留其真值。
我希望这能有所帮助!
相关文章:
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- (extjs)获取表单中单选按钮的选定值.不返回该值
- 如果选择单选按钮,则显示表单
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 基于单选按钮和复选框的数据表排序
- 如何使用 foreach 循环在表中重复单选按钮
- 贝宝表单问题的单选按钮选择
- 通过单选按钮检查提交表单
- 我的单选按钮没有从foreach循环中获得值,表单验证返回'必填字段'即使已检查
- 在检查单选按钮检查状态后启用/禁用表单元素
- 单击单选按钮,添加/删除表单元素的类
- 获取表单帖子外部的单选按钮值
- 根据单选按钮的选择显示HTML表单
- 如何强制更新Webix数据表中的单选按钮
- 单选按钮表单代码和下拉菜单代码
- 表单验证上的彩色单选按钮-Javascript
- jQuery:如何创建一个带有多个单选按钮的实时搜索表单
- 在允许用户进入下一部分之前,在表单验证中检查是否单击了某个选项(单选按钮)
- JavaScript-测验单选按钮和表单验证
- 根据单选按钮在页面加载时使用不同的样式表