【发布时间】:2016-03-05 02:14:40
【问题描述】:
我有一个注册表单,我希望在用户单击提交时进行验证。这是 HTML 的样子:
<form ng-submit="RegistrationC.fireReg()" novalidate name="register">
<div class="row">
<div class="col-md-6 form-group">
<input type="text" autocomplete="off" class="form-control" placeholder="First Name" ng-model="RegistrationC.first_name" required name="first_name">
<div class="help-block" ng-messages="register.first_name.$error" ng-show="submitted && register.first_name.$error">
<p ng-message="required">This field is required.</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group col-md-offset-3">
<button type="submit" class="btn btn-success btn-block" ng-click="submitted=true">Register Now</button>
</div>
</div>
</form>
如果没有输入用户名,它会显示验证消息,但它仍然提交。我错过了什么?
编辑 1
//init.js - RegistrationController
reg_list.fireReg = function () {
var url = 'user/register';
api.makeCall(reg_list, url)
.then(function (response) {
reg_list.response = response;
console.warn(response);
$location.path('/user/verify');
})
.catch(function (errorMessage) {
console.log("got an error in initial processing", errorMessage);
event.restoreButton();
});
};
我知道这个功能有问题,我会在稍后修复它们。
【问题讨论】:
-
你也可以添加
RegistrationC.fireReg()的代码。还有为什么novalidation在表单中? -
嗨@Rajesh,我不希望触发 HTML5 验证。 :)
-
novalidate 是防止原生浏览器验证,使用是正确的
-
基本上,您需要在提交处理程序中检查
formname.$valid。
标签: javascript jquery angularjs validation