如果ng单击附加到提交按钮,则表单未验证
Form not validating if ng-click is attached to the submit button
这是我的表单
<form action="" ng-controller="forgotCtrl as forgot" name="forgotForm">
<div class="form-group row">
<label for="email" class="col-sm-2 form-control-label">Email address</label>
<div class="col-sm-9">
<input type="email" class="form-control" id="email" placeholder="Email Address" required/>
</div>
</div>
<div class="form-group row">
<div>
<button type="submit" class="btn btn-info submitBtn" ng-click="forgotForm.$valid && forgot.redirect()">Submit</button>
</div>
</div>
</form>
电子邮件输入是必填字段,但即使字段为空,HTML5
也会提交表单。只有当ng-click
事件附加到submit
按钮时才会发生这种情况。我不明白为什么会发生这种事。
控制器-
'use strict';
angular.module('app')
.controller('forgotCtrl', ['$location', function($location) {
var self = this;
self.email = document.getElementById("email");
self.redirect = function () {
$location.path('/change');
};
}]);
在form
上使用ng-submit
事件将让浏览器检查有效的HTML5输入,然后让Angular做它的事情。
<form action="" ng-controller="forgotCtrl as forgot"
name="forgotForm" ng-submit="forgotForm.$valid && forgot.redirect()">
参见plunker:http://plnkr.co/edit/hWE34zf2IoBQZlw8Qts0?p=preview
但这仍然需要浏览器提交表单。在Angular(也是document.getElementById("email")
)中不应该这样做。
您可能想要的是从<button>
标记中删除type="submit"
,并且仅在<button>
标记上使用Angular的ng-click
。然后Angular可以处理验证和表单数据。
相关文章:
- 解析javascript表单验证器
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- Javascript表单验证的缺点
- Jquery的表单验证不起作用
- 语义ui表单验证:图像url
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- JavaScript表单验证-“;“错误”;不按需要工作
- Mailchimp内联表单验证不适用于JS加载的HTML
- jQuery/JS获胜't在表单验证后重定向
- jquery表单验证复选框错误显示
- javascript表单验证-数值和密码
- 我想知道如何在javascript中进行表单验证
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 使用记录保存的消息进行表单验证
- 表单验证工作不正常,在不检查条目的情况下继续
- 如何对未知表单元素进行表单验证
- 使用ajax、php和mysql进行表单验证
- JS表单验证未发生
- 表单验证jsphp路径