2013-02-07 42 views
1

我想知道是否有人可以幫助我,因爲我今天Google搜索了一段時間,並沒有找到任何解決我的問題。 我看過的網站提到它是因爲它返回了JSON,但它們在所有字段上獲取它,而不僅僅是一個。 但我不明白,爲什麼不是前兩個領域呢?因此,我的混淆jquery返回ObjectObject,前兩個字段按預期返回

我提交登錄表單,使用JQuery和AJAX(我知道這一點)。

前兩個字段(電子郵件和傳遞)提交併按預期返回。 出於測試目的,我只需返回它們的值<span id="loginresponse"></span>

我有第三個字段,以防止CSRF,稱爲't'(將其命名爲隨機名稱,看看這是否是問題 - 我仍然得到[object Object]返回)。 <input type="hidden" name="t" value="RandomToken"/> 提交表單時,我希望它將我輸入的內容返回到「電子郵件,通過和RandomToken」字段中。 取而代之,我得到電子郵件,通過,[對象對象]。

這是我的DoLogin函數,它在表單提交時調用。

function DoLogin() 
    { 
     var Email = $("#email").val(); 
     var Pass = $("#pass").val(); 
     var LoginResponse = $("#loginresponse"); 
     var T = $("#t"); 
     var EmailPlaceholder="Email address";var PassPlaceholder="Your password here"; 
     $.get('path/to/login_ajax.php?email='+Email+'&pass='+Pass+'&t='+T, function(data) 
     { 
      $('#loginresponse').html(data); 
     }); 
     /*if(Email != EmailPlaceholder && Pass != PassPlaceholder && Email != "" && Email != " " && Pass !="" && Pass != " ") 
     { 

     }*/ 
    } 

這裏是我的HTML表單:

<form action="javascript:DoLogin();" method="post"><!--Also tried changing method to GET, still got the same problem --> 
<input id="email" class="inputemail" type="text" name="email" size="40" value="Email  address" onclick="$(this).val('');"/><span>Your email</span><br/> 
<input id="pass" class="inputpassword" type="password" name="pass" size="40" value="Your password here" onclick="$(this).val('');"/><span>Your password</span><br/> 
<input id="t" type="hidden" name="t" value="RandomToken"/> 
<input class="indexsubmit" type="submit" value="Login"/> 
</form> 
<span id="loginresponse"></span> 

最後,login_ajax.php

<?php 
echo $_GET['email'].$_GET['pass'].$_GET['t']; 
?> 

如上所述 - 我只是呼應的結果,因爲知道,因爲我我知道Jquery和AJAX,所以我想檢查是否所有的字段都按照預期返回值,並且一個不是...令牌字段。

回答

2

您正在將輸入元素的對象T而不是鏈接到GET請求的查詢字符串的元素值。

你應該改變這一行

var T = $("#t"); // The object of the input element 

這個

var T = $("#t").val(); // The value of the input element 
+0

感謝波阿斯,我知道這會是一些簡單的我遺漏了,這是我的一種傾向。我無法相信我忽略了這一點,儘管幾次掃描了這段代碼。 我已經接受了你的答案,因爲你是第一個,並解釋了爲什麼我的代碼不工作的原因,儘管我很欣賞@Luis,你的答案仍然有效。 – RobAtStackOverflow

+1

沒問題。它發生在字面上*每個人* :) – Boaz

2

也許你想要的是:

var T = $("#t").val();