2016-04-08 77 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別人,但如果其他人有更好的解決方案......請加