2009-09-21 8 views
0

jQuery를 사용하여 사용자가 양식을 제출 한시기를 식별합니다. 그런 다음 xajax라는 PHP 메서드를 사용하여 데이터베이스를 쿼리하고 usename과 전자 메일 주소가 이미 사용되지 않았는지 확인합니다. XAJAX를 사용하여 양식 유효성 검사


    $('#newUserForm').submit(function() { 
     var FormName = $(this).attr('name'); 
     xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName)); 
    }); 

그런 다음 validateEmailAddressAndUsername에서 나는 데이터베이스를 조회하고이 방법을 확인합니다.

내가 만난 문제는 jquery가 비동기이며 양식을 제출하기 전에 올바른 xajax 응답이있는 스크립트를 추가 할 수있는 방법이 없다는 것입니다. 이 문제를 어떻게 해결할 수 있습니까?
다른 방식으로해야하나요?

답변

0

가끔 .submit() 단지 # (OBJ)를 사용에 문제가 감사드립니다. .bind는 더 신뢰할 수있는 것 같습니다. 당신은 이런 식으로 뭔가를 할 수 난 (테스트되지 않은) 생각 :

$('#newUserForm').bind('submit', function() { 
    var FormName = $(this).attr('name'); 
    if (xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName))) { 
      $(this).submit(); 
    } 
    else { 
     alert("Oh no!"); 
     return false; 
    } 
} 
+0

이 코드가 무한 재귀에 걸리면 ... 하지만 난 당신이 뭔가에 생각합니다. 제 질문은 : if 진술에 대한 xajax 응답이 TRUE로되도록하려면 어떻게해야합니까? – Onema

+0

나는 왜 그것이 무한정 달라 붙는 지 보았다. 나는 그 반응을 쓸 때 서둘렀다. if가 현재 true를 반환하고 다시 제출 중입니다. $ (this) .submit() 대신 $ .post를 사용해보십시오 http://docs.jquery.com/Ajax/jQuery.post –