在我的AngularJS表单中,我有一些需要的字段和一个不是的字段。如果表单无效,我想阻止提交表单,但是当我检查form.$valid
时,它总是返回false,除非我为一个非必填字段(以及所有其他字段)提供有效输入。有没有办法让form.$valid
仅对必填字段返回true?
更多细节:
<form novalidate name="contactForm" data-ng-submit="submit(contactForm)">
<input type="text" data-ng-model="f_name" name="name" required>
<input type="email" data-ng-model="f_email" name="email" required>
<input type="url" data-ng-model="f_url" name="url">
<input type="submit">
</form>
我的控制器:
app.controller('formController', function($scope){
// Defaults
$.extend( $scope, {
f_name: 'NAME',
f_email: 'EMAIL',
f_url: 'URL',
submit: function(form){
alert(form.$valid); // Returns false even with valid name and email
}
});
});
答案 0 :(得分:0)
如果一个字段有数据 - 它将被验证。
“要求”仅用于确保该字段不为空。
想象一下,您有一个电子邮件输入,并且用户输入了无效的地址。您必须对其进行验证,否则您将在代码中使用无效地址。
如果要跳过特定的字段验证,可能需要在控制器中编写一个方法来执行此操作。