제출 이벤트를 포착하는 양식이 있습니다. 제출 여부를 결정하려면 $.post
전화를 기다려야합니다. 나는 이것을 시도했다 :동기 코드가 비동기 호출을 대기하게합니다.
$('#my_form').submit(function(event){
var data = null;
$.post("/post/call").then(function(_data){
data = _data;
});
if ($.isPlainObject(data) && data.status === 'ko') {
return false; // Do not submit the original form
} else {
// Submit the original form
}
});
그러나 data
결과 _data
가 valorized되고 또한 경우, 항상 null
로, $.post
는 asynchrounous 호출이기 때문이다. $.post
통화가 완료 될 때까지 어떻게 기다릴 수 있습니까?
편집 : 의견에 쓴대로, 나는 페이지를 정지하기 때문에 $.ajax({async: true})
을 피하고 싶습니다. 페이지를 동결하지 않고 동일한 효과를 얻으려면 어떤 방법이 있습니까?
중복 가능성 (http://stackoverflow.com/questions/2942544/synchronous-calls- 설정 될 수 비동기 with-jquery) –
마지막 비동기 콜백에서 기다려야 할 것을 넣지 않는 이유는 무엇입니까? – Danny
어디에서 얻을 수 있나요? .then(). 콜백 함수는 게시물에 쉼표로 첨부됩니다. 게시물이 완료되기 전에 데이터가 설정되지 않았기 때문에 if가 콜백에 있어야합니다. –