AngularJS - 表单自定义验证 - 检查是否至少有一个输入为空
AngularJS - Form Custom Validation - Check if at least one input is empty
给定一个简单的 html 表单,如下所示:
<form name="myForm" action="#sent" method="post" ng-app>
<input name="userPreference1" type="text" ng-model="shipment.userPreference" />
<input name="userPreference1" type="text" ng-model="shipment.userPreference" />
<input name="userPreference1" type="text" ng-model="shipment.userPreference" />
... submit input and all the other code...
</form>
我需要您的帮助来知道如何检查验证时间,如果至少有一个输入为空。所需的验证如下。用户必须至少完成一个首选项。
使用 jQuery 这个:
if ( $("input").val() == "" ) {
工作正常,但想弄清楚如何使用角度做同样的事情。
提前非常感谢,
吉列尔莫
因此,如果所有输入均为空白,则禁用提交按钮。你可以这样做
<form name="myForm" action="#sent" method="post" ng-app>
<input name="userPreference1" type="text" ng-model="shipment.userPreference1" />
<input name="userPreference1" type="text" ng-model="shipment.userPreference2" />
<input name="userPreference1" type="text" ng-model="shipment.userPreference3" />
<button type="submit" ng-disabled="!(!!shipment.userPreference1 || !!shipment.userPreference2 || !!shipment.userPreference3)">Submit</button>
</form>
!!str
是强制将str
转换为boolean
值。并且!!null
和!!""
都被评估为false
.
演示
您可以在输入元素和样式/代码中设置"必需",以处理表单$valid的方式。查看 http://dailyjs.com/2013/06/06/angularjs-7/
我的解决方案如下:
$scope.requiredInputsGroup = function () {
var isRequired = true;
if (!$scope.shipment) {
return true;
}
angular.forEach(["userPreference1", "userPreference2", "userPreference3"], function (input) {
if ($scope.shipment[input]) {
isRequired = false;
return false;
}
});
return isRequired;
};
您将该方法应用于每个输入中的data-ng-required
...
<form name="myForm" action="#sent" method="post" ng-app>
<input name="userPreference1" type="text" ng-model="shipment.userPreference1" ng-required="requiredInputsGroup()" />
<input name="userPreference2" type="text" ng-model="shipment.userPreference2" ng-required="requiredInputsGroup()" />
<input name="userPreference3" type="text" ng-model="shipment.userPreference3" ng-required="requiredInputsGroup()" />
<button type="submit" ng-disabled="myForm.$invalid">Submit</button>
</form>
我应用的最后一点是用一个简单的myForm.$invalid
禁用按钮
相关文章:
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 将一个html表转换为json对象并将其发送到php页面,该表有一个输入字段
- 我有一个mysql的输入文本字段.那么,如何通过ajax从数据库中输出json表呢
- 输入字段中只允许有一个点
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 我在表单页面上有一个弹出窗口以及一个隐藏元素,具体取决于用户输入.两者都使用 jquery
- 选择除隐藏之外的所有输入(但有一个例外)
- AngularJS - 表单自定义验证 - 检查是否至少有一个输入为空
- 禁用提交按钮,直到所有隐藏的输入都有一个值
- 如果至少有一个输入具有值或某个选择更改了默认值,则启用/禁用切换按钮
- 我在html中有两个输入字段,我在想如何将第一个输入字段的值自动转换为下一个输入字段
- 检查所有输入文本是否为空,如果至少有一个已填充,则打开颜色框
- 输入数字HTML5:是否有一个事件在每一步都会触发
- 为什么一个有一个文本INPUT的FORM在输入时提交,而一个有两个文本INPUTs的FORM则不提交
- 当类型=“0”时,我怎么能有一个预先选择的输入;文件”;
- 下拉列表,有一个输入字段的选项
- 我有一个输入,它的's类型设置为隐藏,我需要改变它的's类型为文本.我似乎无法弄清楚这一点,或者它是否可
- Js/当有一个输入的数量和产品没有添加到购物车时,显示一个弹出链接
- 如果至少有一个输入不是原始的,我如何将CSS应用于链接,如果所有输入都是原始的,我如何撤销该更改?