web-dev-qa-db-ja.com

サーバーサイド.NETでHTML5メール入力タイプを使用するにはどうすればよいですか

私が理解しているように、HTML5の<input type=email>要素は、タグをサポートしていないブラウザでは単純なテキストフィールドとしてレンダリングされます。他のブラウザでは、iPhoneのように正しくレンダリングされ、電子メールのキーボードレイアウトが表示されます。

これをプロジェクトで使用したいのですが、入力フィールドは<asp:TextBox>コントロールです。 HTML5要素を使用しながら、他のフィールドと同じようにサーバー側のデータにアクセスするにはどうすればよいですか?

24
Michael

Type属性を指定できる.NETFramework4の更新があります

http://support.Microsoft.com/kb/2468871

見る feature 3ページのずっと下

特徴3

新しい構文を使用すると、HTML5互換のTextBoxコントロールを定義できます。たとえば、次のコードは、HTML5互換のTextBoxコントロールを定義しています。

<asp:TextBox runat="server" type="some-HTML5-type" />
25
Chris Diver

次のように、属性を手動で追加してみることができます。

TextBox1.Attributes["type"] = "email"; 
TextBox1.Attributes["type"] = "url"; 
TextBox1.Attributes["type"] = "number"; 
16
Milox

申し訳ありませんが、私はパーティーに少し遅れていますが、他の人は私がしたことから利益を得ることができると思います。まだ.NET3.5がありますが、HTML5のページがあります。タイプをemailに変更しましたが、.NET要素を保持したかったのです。私はいくつかの方法(上記のMiloxを含む)を試しましたが、うまくいきませんでした:私はJavaScriptプロパティを要素自体にインラインで追加しました(スクリプトタグに入れると選択されませんでしたなんらかの理由で...)私の変更を使用した場合のタグは次のようになります。

<asp:TextBox runat="server" type="email" onfocus="this.type='email'"/>

エリ

5
Eli

サーバーコントロールとしてアクセスできるかどうかに関係なく、HttpRequest.Formコレクションにアクセスして値を取得できる必要があります。ブラウザがタグをどのように処理するかに関係なく、ブラウザはサーバーに文字列を送信する必要があります。

3
John Bledsoe

.aspxファイルに追加します

<input type="text" required autofocus placeholder="Email Address"
class="txt-input txt-input-username" ID="myTextBox" runat="server"/>

.csの背後にあるコード内

myTextBox.Attributes["type"] = "email";

これは私のために働いた

2
Shelly

独自のカスタムコントロールを作成し、レンダリングルーチンをオーバーライドする必要があります。ソースコードまたはDLLのいずれかを自由に使用してください

0
ja928