如果未使用 jQuery hide() 显示 AngularJS 表单项,是不是对其进行验证?
Posted
技术标签:
【中文标题】如果未使用 jQuery hide() 显示 AngularJS 表单项,是不是对其进行验证?【英文标题】:Is an AngularJS Form Item validated if it isn't displayed using jQuery hide()?如果未使用 jQuery hide() 显示 AngularJS 表单项,是否对其进行验证? 【发布时间】:2020-10-08 18:46:31 【问题描述】:是的,现在是 2020 年,我仍在使用 AngularJS 1.x 而不是 Angular,但它是用于工作中的项目,所以我在这件事上别无选择。
无论如何,我正在尝试设置一个表单,该表单需要在两个字段之一时正确验证(但不是两个字段或一个字段,因为根据单选按钮集的状态,一次甚至只有一个可见)已填写。本质上,我需要异或验证,我真的希望我不需要为它创建自定义 html 标记或属性。
我想到的最简单的解决方案实际上可能与表单的工作方式相一致,因为根据单选按钮的值,显示两个表单条目之一(使用 jQuery 的 hide() 和 show () 方法,而不是 ng-hide、ng-show 或 ng-if)。我的问题是,jQuery 的 hide() 方法是否像 CSS 的 display: none 属性一样从页面中完全删除了 div?如果是这样,验证是否会检查未显示的 div?否则,我将如何根据显示的内容来验证一个或另一个而不是两者?
很遗憾,我不能包含任何代码或 plunker,因为我的工作要求我遵守 NDA,抱歉,但希望我已经提供了足够的信息。
谢谢。
【问题讨论】:
我建议你不要使用 jQuery,因为你需要使用$scope.$apply
来更新你的控制器范围。而是使用 ng-if
从 DOM 中删除元素。我还建议您构建一个小型演示来展示您的案例。
【参考方案1】:
<div ng-if="myVar">
Displays if myVar truthy
</div>
这应该可以解决您的问题。
【讨论】:
以上是关于如果未使用 jQuery hide() 显示 AngularJS 表单项,是不是对其进行验证?的主要内容,如果未能解决你的问题,请参考以下文章