2012-12-20 2 views
0

내가 얻은 데이터에 따라 jQuery get 요청에 조건을 추가하고 싶습니다. 여기 get() 요청의 조건

내 기능입니다 :

function validateForm() { 
    var username = $('#username').val() 
    var result = '' 

    $.get(
     '/auth_validate_username/', 
     { 'result': result }, 
     function(data) { 
      $.post(
       '/auth_validate_username/', 
       { 'username': username }, 
       function(data) { 
        $('.error_message').html(data); 
       } 
      ); 
     } 
    ); 
    return false; 
}; 

HTML :

<form method="post" onsubmit="return validateForm();"> 
    <input id='username' type="text" name="username"/> 
    <div class='error_message'></div> 
    <button type="submit">Valider</button> 
</form> 
나는 조건을 넣어 싶습니다

그래서 내 get 기능을 얻을 result가 비어 있지 않은 경우, 다음 양식 제출되지 않았습니다. 그러나 result != '' 인 경우 양식을 제출하고 싶습니다.

get 요청에 양식에 조건을 넣을 수있는 방법에 대한 아이디어가 있으십니까?

+0

폼 유효성 검사기 플러그인을 사용하거나 사용자 정의 자체를 만들어야합니다. – Rafee

+0

양식 검사기? if 문은 어떻습니까? 그건 그렇고, 객체 키로서''result''와''username'' 주위의 따옴표는 필요하지 않습니다. – Aesthete

답변

3

get 요청 후에 실행되는 함수에서 모든 javascript 문을 실행할 수 있습니다. if 포함.

function validateForm() { 
    var username = $('#username').val() 
    var result='' 

    $.get(
     '/auth_validate_username/', 
     { 'result': result }, 
     function(data) { 

      // Magical line there 
      if (data !== '') { 

       $.post(
        '/auth_validate_username/', 
        { 'username': username }, 
        function(data) { 
         $('.error_message').html(data); 
        } 
       ); 
      } 
     } 
    ); 
    return false; 
}; 
+0

감사합니다. 내가 추가하고 싶은 조건은 : if (data! == '') {return false;}. 문제는 반환을 거짓으로하고 싶습니다. 내 양식이 제출되지 않도록 validateForm() 함수에 적용됩니다. 그것을 시도 할 때 그렇지 않은 것처럼 보입니다. – Marcolac

+0

@Marcolac 그럼'e.preventDefault()'로 재생할 수 있습니다. 'validateForm' 함수에서'e'를 전달하고'e.preventDefault()'를 사용하십시오. –

+0

감사합니다. 나는 e.preventDefault()에 대해 모른다. 나는 그것을 어떻게 사용하는지 점검 할 것이다. 도와 줘서 고마워. – Marcolac