当你有一个表单指定action属性,angularjs不会做的preventDefault。 如果你删除它,并添加代替NG-提交:
<form name="myForm" method="post" ng-submit="signUp(myForm)" novalidate>
<input type="email" name="email" ng-model="newSignup.email" required>
<button type="submit">sign up</button>
</form>
在这种情况下,形式总是会有的preventDefault并提交您的$ scope.signUp()函数将被调用,您可以用AJAX后进行到后端/注册或进一步验证。 请注意,通过在输入上使用适当的验证属性(如type =“email”和required),angularjs将为您执行一些基本验证。 您可以在提交按钮上额外添加ng-disabled="!myForm.$valid"
,以防止在未正确输入电子邮件时禁用按钮。
通过使用像在我的例子中,输入NG-模型,你的范围会得到一个$scope.newSignup
对象,你可以在你的注册检查进一步验证()函数:
$scope.signUp = function(htmlForm) {
if ($scope.newSignup.email !== '[email protected]') {
return false; // you should really show some info to the user
}
...
}
加上'NG-禁用= “!email”输入。或者更好的是,适当地实施表单验证。 –