當你有一個表單指定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」輸入。或者更好的是,適當地實施表單驗證。 –