Khi bạn có thuộc tính hành động cụ thể đối với hình thức, angularjs sẽ không làm preventDefault. Nếu bạn gỡ bỏ nó và thêm ng-nộp thay:
<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>
Trong trường hợp này các biểu mẫu sẽ luôn có preventDefault và nộp chức năng $ scope.signUp() của bạn sẽ được gọi là nơi bạn có thể tiến hành một bài ajax vào phần phụ trợ/đăng ký hoặc xác nhận thêm. Lưu ý rằng bằng cách sử dụng các thuộc tính xác nhận hợp lệ trên đầu vào của bạn (như loại = "email" và bắt buộc), angularjs sẽ thực hiện một số xác thực cơ bản cho bạn. Bạn có thể có thêm ng-disabled="!myForm.$valid"
trên nút gửi để giữ nút bị tắt trong khi email không được nhập chính xác.
Bằng cách sử dụng ng-mô hình trên đầu vào như trong ví dụ của tôi, phạm vi của bạn sẽ nhận được một đối tượng $scope.newSignup
mà bạn có thể kiểm tra trong đăng ký của bạn() chức năng để xác nhận thêm:
$scope.signUp = function(htmlForm) {
if ($scope.newSignup.email !== '[email protected]') {
return false; // you should really show some info to the user
}
...
}
Nguồn
2013-10-29 11:51:47
thêm 'ng-disabled = "! email" 'để nhập. Hoặc tốt hơn, thực hiện xác thực biểu mẫu đúng cách. –