2016-04-08 3 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"は、フレームワーク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誰が、誰が、よりエレガントな解決策を持っている場合...

を追加してください
関連する問題