각도 JS에서 양식 제출 시 작업을 위해 preventDefault 또는 false를 반환할 수 없습니다.
AJAX를 통해 전달하고 싶은 양식이 있습니다.
<form class="form-inline ng-pristine" ng-submit="sendForm()" method="post" action="/sign_up" accept-charset="UTF-8">
$scope.sendForm = (e) ->
e.preventDefault ->
console.log 'sendForm()'
return false
그console.log이 표시되고, 곧바로 폼이 전달됩니다.
양쪽 모두 무시합니다.e.preventDefault(), 및return false.
AngularJs 하면 꿀오소리 생각나.그건 상관 없어.
파티에 늦는 것은 알지만, 아직 파악하지 못한 경우, 액션을 보관하고 실제로 폼이 제출되지 않았는지 확인할 수 있습니다.$event에게ng-submit기능.그럼, 을 사용할 수 있습니다.event.preventDefault();모든 처리를 완료한 후 컨트롤러에 저장하십시오.
고객의 경우는 다음과 같습니다.
<form class="form-inline ng-pristine" ng-submit="sendForm($event)" method="post" action="/sign_up" accept-charset="UTF-8">
$scope.sendForm = (e) ->
// doing stuff
e.preventDefault()
이게 도움이 됐으면 좋겠다.
음, 당신은 그것을 "각선 방식"으로 하고 있지 않습니다.Angular는 ng-submit이라는 명령어를 제공합니다.이 명령어를 사용하면 기본값이 방지됩니다(양식에 액션 속성이 지정되어 있지 않은 경우).
마크업(검증 있음!)
<form name="myForm" ng-submit="sendForm()">
<div>
<input type="text" name="name" ng-model="data.name" required/>
<span ng-show="myForm.name.$error.required && myForm.name.$dirty">required</span>
</div>
<div>
<input type="email" name="email" ng-model="data.email" required/>
<span ng-show="myForm.name.$error.required && myForm.name.$dirty">required</span>
<span ng-show="myForm.name.$error.email && myForm.name.$dirty">invalid email</span>
</div>
<button type="submit" ng-disabled="myForm.$invalid">Submit</button>
</form>
코드
app.controller("MyCtrl", function($scope, $http) {
$scope.sendForm = function (){
$http.post('/Submit/To/Url', $scope.data).success(function(data) {
alert('done!');
});
};
});
통과하면 이벤트를 받을 수 있습니다.$eventng-click 또는 ng-click을 입력합니다.그건 의존성 주입과 비슷해요. 당신 표현만 빼고요.
html
<form class="form-inline ng-pristine" ng-submit="sendForm($event)" method="post" action="/sign_up" accept-charset="UTF-8">
설명문
$scope.sendForm = (e) ->
e.preventDefault()
console.log 'sendForm()'
false
여기 다른 모든 답변에 대한 더 나은 해결책이 있습니다.
폼 요소에 html5 검증 필수 속성이 첨부되어 있다고 가정합니다.
지금이다
<button ng-submit="Save($event)">SEND ME</button>
이제 기능하게 되었습니다.
$scope.Save = function($event){
$event.preventDefault();
.
. // may be an ajax request
.
return false;
}
이로 인해 html5 검증이 트리거될 뿐만 아니라 양식 제출 리다이렉트도 방지됩니다.
이 문제를 해결하는 다른 방법은 지침을 사용하는 것입니다.
app.directive("submit", [function () {
return {
scope: {
submit: "="
},
link: function (scope, element, attributes) {
element.bind("submit", function (loadEvent) {
return scope.submit(loadEvent);
});
}
}
}]);
<form submit="sendForm" method="post" action="/sign_up">
$scope.sendForm = function(e) {
if ($scope.whatever)
return true;
else
return false;
};
언급URL : https://stackoverflow.com/questions/14524020/angular-js-does-not-allow-preventdefault-or-return-false-to-work-on-form-submiss
'programing' 카테고리의 다른 글
| JSON 오브젝트에서는 값의 시퀀스가 중요합니까? (0) | 2023.02.25 |
|---|---|
| SQL 개발자를 사용하여 자동 증가 열을 설정하는 방법 (0) | 2023.02.25 |
| JSON Return을 사용한 PHP 스크립트에 대한 jQuery AJAX 호출 (0) | 2023.02.25 |
| 반응: 기능 컴포넌트에 소품 전달 (0) | 2023.02.25 |
| 레퍼러를 설정하지 못했습니다.정책 오류 (0) | 2023.02.25 |