2016-04-08 44 views
0

有以下问题: 在asp.net/vb.net/ajax网站上工作是Visual Studio 2010,我试图在现有文本框控件中使用HTML5 type="email"来生成电子邮件有针对性的键盘显示的触摸屏设备...HTML5类型设置返回空的控件文本属性

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
    </asp:ToolkitScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
... 
    <asp:TextBox ID="Email" runat="server" CssClass="txtBox" type="email"></asp:TextBox> 

<asp:Button ID="Confirmation" runat="server" Text="Confirm" CssClass="btnBox" OnClick="Confirmation_Click" OnClientClick="setFocus();" /> 
... 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Confirmation" EventName="Click" /> 
    </Triggers> 
    </asp:UpdatePanel> 

但在代码隐藏的Email.txt将返回一个空字符串。如果我删除type="email",一切都很好。

为了回答这个问题,我假设类型定义覆盖文本框控件的隐含type="text",那么如何访问异步回发的控件值?或者我可以吗?

msg = String.Format("Email:{0} ", Email.Text) 

UPDATE:

使用具有与Request.Form结合基本的html元素申请表,仍然无法检索值也试过当type="email"

... 
        <asp:TextBox ID="Email" name="Email" runat="server" CssClass="txtBox" type="email"></asp:TextBox><br /> 
        <input id="Email1" name="Email1" type="email" CssClass="txtBox" /> 
... 

代码隐藏

... 
     If Not Request.Form("Email1") Is Nothing Then 
      temp = Request.Form("Email1").ToString 
     End If 
     If Not Request.Form("Email") Is Nothing Then 
      temp = Request.Form("Email").ToString 
     End If 
... 

但如果我改变type="text",一切都很好...啊...

感谢您的任何指导......

戴夫

回答

0

啊...回答我的问题?

因此,文本框控件中的"TextMode“将支持Framework 4.5中的电子邮件等模式(未在我的测试中),但我现在无法升级,因此有点创意”解决“了我通过。

所以基本上我添加了一个隐藏的字段控件,并使用JavaScript注入控件的值在电子邮件字段中,从而使我的代码能够使用值集......请参阅下面的代码。

<script type="text/javascript"> 
    function setFocus() { 
    ... 
     var hdnEmail = document.getElementById("HDNEmail"); 
     var emlEmail = document.getElementById("Email1"); 
     hdnEmail.value = emlEmail.value; 
    ... 
    } 
</script> 
... 
    <input id="Email1" name="Email1" type="email" class="txtBox" /> 
    <asp:HiddenField ID="HDNEmail" runat="server" ClientIDMode="Static"></asp:HiddenField> 
... 

<asp:Button ID="ctlBTNConfirmation" runat="server" Text="Confirm" CssClass="btnBox" OnClick="Confirmation_Click" OnClientClick="setFocus();" /> 

... 

代码隐藏

... 
temp = HDNEmail.Value 
... 

HTH别人,但如果其他人有更好的解决方案......请加