2013-05-18 68 views
1

我開始使用phpAcademy在新波士頓youtube頻道上製作的jQuery教程。 我到達了必須創建電子郵件驗證表單的部分,但我沒有使用PHP,我正在使用ASP.net作爲本教程。

所以,即使我做了本教程中所說的一切,我無法通過使用$ .post發送任何變量到.aspx頁面,並且當我想從.aspx中檢索變量時頁面,它檢索我的整個源代碼。

爲主營頁面的源代碼:

<input type="text" id="email" /> <span id="emailfeed"></span> 

JavaScript文件與jQuery代碼:

function validate_email(email) { 
     $.post('email.aspx', { email: email }, function (data) { 
      $('#emailfeed').text(data); 

     }); 
    } 

    $('#email').focusin(function() { 
     if ($('#email').val() === '') { 
      $('#emailfeed').text('Enter your email here'); 
     } else { 
      validate_email($('#email').val()); 
     } 
    }).blur(function() { 
     $('#emailfeed').text(''); 
    }).keyup(function() { 
     validate_email($('#email').val()); 
    }); 

的email.aspx.cs代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 

     string email = Request.Form["email"]; 
     emailLabel.Text = email;// HTTP Post 
     } 
    } 

這段代碼將所有在該字段中輸入的內容發送到email.aspx,然後檢索email.aspx中顯示的內容它在span標籤「emailfeed」中。 所以基本上,我寫的東西在電子郵件領域,應該跨度標籤之間顯示...但這種情況不會發生,而是說,我得到這個:

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title></head> 
<body> 
<form method="post" action="email.aspx" id="form1"> 
<div class="aspNetHidden"> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="6/oBNs2tFeYkrpkFpDL724BXcQwQ8axaBMe/+VEr/27lNqbjE1FyzyK6Zrl2TCcvjgfkv01vyV3PXehcal8bJZdEfpf4v5KkxQTelnzKhlM=" /> 
</div> 

<div> 
<span id="emailLabel"></span> 
</div> 
</form> 
</body> 
</html> 

所以基本上這是源代碼的email.aspx顯示之間,而不是我實際上打字。

我該如何解決這個問題?

+0

我也想提一下,我知道現在這個驗證可以很容易地通過HTML5完成,但我只想弄清楚爲什麼這不起作用。 $ .get也是,不適合我,所以我想弄清楚,如果這是因爲我做錯了什麼或我錯過了什麼。 –

回答

0

我以前見過這種奇怪的行爲,頁面源顯示。我似乎記得這是由於ajax調用返回一個混淆了ASP.NET框架的contentType。嘗試將$.postdataType設置爲html

+0

好吧,你對此完全正確,現在它什麼也沒有顯示(它有效)。但事情是,jQuery沒有通過郵寄將變量「email」傳遞給我的.aspx文件。我究竟做錯了什麼?爲什麼我的.aspx文件沒有收到$ .post()發送的信息? –

+0

你的回答只能解決我問題的一半......如果你可以幫我解決問題的其餘部分,那將會很棒......我已經花了3個小時試圖完成這項工作,而且我沒有取得積極的結果。 –

+0

我認爲你的表單數據可能沒有顯示,因爲你的JSON格式不正確。試試'{「email」:「email」}' – drewberk