给出一个简单的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() == "" ) {
工作正常,但想弄清楚如何使用angular做同样的事情。
非常感谢,
吉列尔莫
答案 0 :(得分:29)
因此,如果所有输入都为空,则禁用提交按钮。你可以这样做
<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
。
的 Demo 强>
答案 1 :(得分:4)
我的解决方案如下:
$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
答案 2 :(得分:3)
您可以在输入元素和样式/代码中设置“required”,以便使用$ valid表单来处理。查看http://dailyjs.com/2013/06/06/angularjs-7/