2017-03-06 47 views
0

我用jQuery Tag-It使電子郵件字段標記。我嘗試檢查郵件是否有效不是從服務器端,在我的情況,api.php,這使得響應,如:jQuery Tag-It beforeTagAdded事件與電子郵件驗證

{"status": "OK"} 

{"status": "NG"} 

我想從添加拒絕無效郵件在檢查後進入輸入字段,所以我把一個AJAX帖子添加到API調用中。但事件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

我也使用標籤它爲我的項目,希望這將解決您的問題。

我的解決方案:

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