왜 당신은 작동하지 않습니다 생각하십니까? 양식을 제출하기 전에 함수가 값을 확인하고 반환 할 것으로 예상되면 Ajax 검사가 수행되기 전에 availability
함수가 반환되어 양식에서 경고를 제출하고 무효화 할 수 있습니다. 즉, 페이지 은 (는) 이미 언로드되어 새 요청이 처리되고 있습니다. availability
에서 거짓
- 반환
- 가
availability
성공 함수의 양식 제출을 수행 (또는 그렇지 않으면 양식 제출을 중지) : 당신이 양식을 제출하기 전에 가능 여부를 확인하려면이 옵션을 사용하려면 다음을 수행해야합니다.
- (아마) html 대신 텍스트 응답이 필요하다고 표시합니다.
검사를 단순화 할 수도 있습니다. 검사하기 전에 변수에 "데이터"를 넣을 필요가 없습니다. 나는 왜 당신이 페이지에 그것을 추가하고 있는지 확실하지 않지만 그것은 합리적 일 수 있습니다. 또한 함수의 이름 변경 (이 작업을 수정하고 AJAX를 통해 양식 제출을 처리하는 경우)을 제안합니다. 그렇지 않으면 처리기를 제거하고 양식에서 제출을 트리거 할 수 있습니다.
submitIfAvailable: function(form, element, value) {
$.ajax({
type: "GET",
url: "/tunnel/availability.php",
data: "username="+element,
dataType: 'text', // I think it should work without this, but...
success: function(data){
if (data == "yes"){
$form = $(form);
$.post($form.attr('action'), $form.serialize(), function(result) {
// process the result of form submission
});
}
}
});
return false;
}
나는 몇 가지 가정을 만들고 있어요 - 이것은 availability
기능을 사용하는 방법에 맞지 않을 경우 적절하게 수정합니다. 기억해야 할 중요한 점은 전에 AYAX 호출이 완료되고 AJAX 호출에서 오는 함수의 반환 값을 사용할 수 없기 때문에 함수가 을 반환한다는 것입니다. aSync
을 false
으로 설정하여 AJAX 호출을 동 기적으로 실행하지 않으면 적어도 사실입니다.
작동하지 않습니까? 찾기 또는 필터 같은 기능을 사용할 수 있습니까? –