2017-03-06 1 views
0

나는 jQuery Tag-It을 사용하여 이메일 필드를 태그와 유사하게 만들었습니다. 내가 좋아하는 응답을 만들어 내 경우, api.php에, 서버 측에서 이메일이 유효한지 여부를 확인하려고 여부 :이메일 확인이 가능한 jQuery Tag-It beforeTagAdded 이벤트

{"status": "OK"} 

또는

{"status": "NG"} 
내가 추가에서 유효하지 않은 이메일을 거부하고 싶은

확인 후 입력 필드에, 그래서 API 호출에 AJAX 게시물을 넣어. 그러나 이벤트 beforeTagAdded에는 비동기 회신 대신 직접적인 부울이 필요합니다. 내 코드는 다음과 같습니다.

$('input[name=txt_email]').tagit({ 
    beforeTagAdded: function(event, ui) { 
     if(!ui.duringInitialization) { 
      $.post('api.php', { 
       'request': 'check_email', 
       'entry': ui.tagLabel 
      }, function(response) { 
       if(response.status == 'OK') { 
        return true; 
       } else { 
        return false; 
       } 
      }); 
      return false; 
     } 
    }, 
    onTagExists (fn, callback) { 
     return false; 
    } 
}); 

유효하지 않은 코드를 거부하도록 내 코드를 변경하려면 어떻게해야합니까?


UPDATE은 내가 동기 모드로 AJAX 호출을 설정할 수 있습니다 알고 있지만, 그것은 사용자 경험 측면에서 나쁜로는 ​​권장되지 않습니다.

답변

0

또한 내 프로젝트에 tag-it을 사용했습니다. 문제가 해결되기를 바랍니다.

내 솔루션 :

beforeTagAdded: function(event,ui){ 
        var temp = ui.tag.text(); 
        var t11 = testcall(); 
        alert("++++>>>"+t11); 
        return t11 
        } 
function testcall(){ 
    var result = true;//personal choice to set the boolean value 
    $.ajax({ 
      'url':'/app/test',//your own url 
      'type':'POST', 
      'data':{'zx':123},// any data if needed 
      'async':false, // this is important for this task 
      success:function(response,Status,code){ 
        alert("success >>"); 
        result = false 
      }, 
      error: function(jqXHR, exception) { 
        alert("error"); 
        console.log(exception); 
      } 
    }); 
    alert(result); 
    return result; 
} 
+0

감사하지만 같은 AJAX 호출 (동기 XHR)는 지원되지 않습니다에 대한 동기 모드를 설정, 내 질문에 말했다. 나는 다른 해결책이 필요하다. – Raptor