2014-05-16 58 views
0

我正在通過ajax驗證表單,現在我已經使用引導程序的alert alert-dangeralert alert-success類來給ui,但返回時,它只是呈現爲不含所需UI的純HTML , 我究竟做錯了什麼?使用ajax功能時自舉警報不起作用

$('#url').keyup(function(){ 
      var val = $('#url').val(); 
      $.post(
       '<?php echo base_url();?>index.php/validator/check_for_url', 
       {ajax:1,url:val}, 
       function(data){ 
        $('#url_feedback').html(data); 
       } 
      ); 
     }); 
// php backend call via ajax 
function check_for_url() 
    { 
     if(isset($_POST['ajax']) && $_POST['ajax'] == 1) 
     { 
      $url = $_POST['url']; 
      if(!preg_match('%^((https?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i', $url)) 
      { 
       echo '<p style="alert alert-danger">Invalid URL, make sure it\'s like http:// or https://</p>'; 
      } 
      else 
      { 
       $query = $this->db->get_where('users',array('user_url'=>$url)); 
       if($query->num_rows() > 0) 
       { 
        echo '<p style="alert alert-danger">URL Address already exists...</p>'; 
       } 
       else 
       { 
        echo '<p style="alert alert-success">URL address can be used...</p>'; 
       } 
      } 
     } 

    } 
+0

定義純html ...我做了一個測試,你應該改變風格的類....像這樣:http://jsfiddle.net/robertrozas/sDefL/ :) – Hackerman

回答

0

您應該看看jQuery.ajax()文檔中的dataType設置。

您期待從服務器返回的數據類型。如果沒有指定,jQuery將嘗試根據響應的MIME類型推斷它(XML MIME類型將生成XML,在1.4中JSON將生成一個JavaScript對象,在1.4腳本中將執行該腳本,而其他任何東西都將作爲字符串返回)。可用的類型(以及作爲第一個參數,以您的成功回調傳遞的結果)是:

我的猜測是,由於某種原因,你的HTTP服務器沒有返回正確的MIME類型,因此jQuery的可能回落到治療它作爲一個常規字符串。