2013-05-18 44 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