我正在尝试在提交外部网址之前验证表单:
<form name="form" novalidate ng-submit="form.$valid && alias != ''" method="POST" action="https://sis-t.redsys.es:25443/sis/realizarPago">
<input name="alias" ng-change="updateData(alias)" ng-model="alias" type="text" class="form-control validate" placeholder="{{ translates.alias_desc }}" required>
</form>
答案 0 :(得分:0)
您可以编写自己的指令,以防止提交表单的默认行为。你可以这样做:
app.directive('formValidate', ['$timeout', function ($timeout) {
return {
restrict: 'A',
scope: false,
require: 'form',
link: function (scope, elem, attrs, formCtrl) {
elem.on('submit', function (event) {
if (!formCtrl.$valid) {
$timeout(function () {
formCtrl.$setDirty();
formCtrl.$setSubmitted();
});
event.preventDefault();
}
})
}
}
}])
注意,必须使用$timeout
包装来强制调用$digest
并设置$dirty
和$submitted
个状态(如果您使用类ng-dirty
和{{ 1}}用于表单验证)。
您可以像这样使用此指令:
ng-submitted