angularjs - 如何在提交按钮中强制控制非强制性
问题描述
我在表单中有一个文本框 A 和两个按钮 B 和 C。
如果我没有在文本框 A 中填写任何内容
- 当我按下按钮 B 时,它应该说需要。
- 当我按下按钮 C 时,它不应该说是必需的。
文件
<form name="nm_eventform" novalidate>
<input type="text" ng-model="md_eventname" name="nm_evtname" required />
<div ng-messages="nm_eventform.nm_evtname.$error" role="alert">
<div ng-message="required" class="divMasterMsg">Event Name is required</div>
</div>
<button type="submit">B</button>
<button type="submit" ng-click="ButtonC()">C</button>
</form>
正如我所要求的,我不需要在 ButtonB() 中写任何东西。因为我想抑制 ButtonC() 中的强制条件,所以我使用 $setValidity 但它没有使我的表单有效。
JS文件
$scope.ButtonC= function () {
$scope.nm_eventform.nm_evtname.$setValidity('required', false);
if ($scope.nm_eventform.$valid) {
}
}
我试过 ng-required 但它不适合我的情况。
解决方案
您需要使用ng-required
而不是required
喜欢ng-required="{{editing == false ? true : false}}"
并根据您的按钮单击事件更改 true 或 false 值。
<form name="nm_eventform" novalidate>
<input type="text" ng-model="md_eventname" name="nm_evtname" ng-required="{{editing == false ? true : false}}" />
<div ng-messages="nm_eventform.nm_evtname.$error" role="alert">
<div ng-message="required" class="divMasterMsg">Event Name is required</div>
</div>
<button type="submit">B</button>
<button type="submit" ng-click="ButtonC()">C</button>
</form>
**For Js File:**
$scope.ButtonC= function () {
$scope.editing = true;
}
推荐阅读
- python - 查找 pandas 数据框列的 n 个最大值(当为字符串时)
- android - Flutter 内存泄漏
- swiftui - SwiftUI 如何在新视图中链接 ForEach 索引和照片索引?
- arrays - 在C中将结构复制到结构数组的正确方法
- terminal - 将日志放在无限循环生成的标准输出上的最佳方法是什么?
- asp.net-core - 发布后重置 NLog 配置文件
- java - 整数迭代器未显示最后一个整数
- c# - 如何在文本框MVP c#中显示选定的行
- json - 如何在反应打字稿中从json文件中获取和显示数据
- arrays - 检查一些变量后向结构数组添加新结构