2011-05-21 114 views
0
下面

是代碼我使用問題與jQuery from.submit和Ajax

$(document).ready(function(){ 

    $("form").submit(function(event) { 
      event.preventDefault(); 

      var val = $("#captcha_text").val(); 

      $.ajax({ 
       url: 'checkAnswer.php', 
       type: 'POST', 
       dataType: 'text', 
       data: { 
        answer: val 
       }, 
       complete: function(data) 
       { 
        console.log(data); 
        if($.trim(data) == "true") 
         $("form")[0].submit(); 
        else 
         alert('Wrong Answer'); 
       } 
      }); 
     }); 
}); 

checkAnswer.php有這樣一個行僅是

echo "true"; 

我不知道爲什麼的JavaScript如果在完整的功能條件總是會去其他部分和顯示警報('錯誤答案')

做任何人知道可能是什麼問題。 ?在Firebug控制檯我看到的響應正在添加從我的Ajax和響應值回是「真」

+1

設定具體的數據類型的屬性爲「text」,看看會發生什麼。 – Bora 2011-05-21 14:48:42

+0

我還沒有工作..我會得到抑鬱症患者與jquery我認爲 – 2011-05-21 14:53:08

+0

你試過skippink trim()函數? – 2011-05-21 14:57:56

回答

2

使用:

if($.trim(data.responseText) == "true") 

完全接收的第一個參數jqXHR(擴展XMLHTTP請求對象)而不是根據數據類型的數據

或者使用成功,而不是完整的

+0

謝謝醫生,但仍然不工作 – 2011-05-21 15:16:37

+0

「仍然無法正常工作」是不足以提供進一步幫助的信息。 – 2011-05-21 15:18:07

+0

非常感謝我堅持了6個小時。我把它從完整的類型改成了現在的成功。有一個可愛的生活冠軍.. – 2011-05-21 15:31:12

2

那麼我認爲你必須這樣做:

   $.ajax({ 
        url: 'test.php', 
        type: 'POST', 
        dataType: 'text', 
        data: { 
         answer: val 
        }, 
        complete: function(jqXHR, textStatus) 
        { //it returns an jqXHR object 
         if($.trim(jqXHR.responseText) == "true") 
          $("form")[0].submit(); 
         else 
          alert('Wrong Answer'); 
        } 
       }); 

這是因爲jQuery返回jqXHR對象看here以供參考。

編輯你也可以試試這個:

   $.ajax({ 
        url: 'test.php', 
        type: 'POST', 
        dataType: 'text', 
        data: { 
         answer: val 
        }, 
        success: function(data) 
        { 

         if($.trim(data) == "true") 
          alert('ok'); 
         else 
          alert('Wrong Answer'); 
        } 
       }); 
+0

非常感謝冠軍,但沒有成功 – 2011-05-21 15:15:27

+0

我試了一下,它的工作。奇怪。你使用的是什麼版本的jQuery? – 2011-05-21 15:19:03

+0

您是否使用firefox?如果您不建議您將它與firebug擴展一起使用:它非常適合調試這些問題 – 2011-05-21 15:20:46