ユーザーが入力中にテキストボックスに入力したコンテンツを .ToLower() に変換する必要があります...いくつかの例を見つけましたが、それはすべてイベントKeyPress
にありasp.net
、イベントだけがありますTextChange
。また、何かを見つけましたHegex
が、誰かがかつて私に言いましたその作業hegex
は良い習慣ではありません... 私は初心者なので、皆さんに尋ねるのが好きです.
3 に答える
サーバー側とクライアント側のイベントを混同しています。.aspx で宣言する TextBox はデフォルトで としてレンダリングされるinput[type=text]
ため、すべてのクライアント側イベント (onkeypress、onkeyup、onkeydown など) を処理できることに注意してください。しかし、やりたいことは CSS だけで実現できます。次のプロパティをテキスト ボックスに入力します。
<asp:TextBox ID="txtTest" runat="server" Style="text-transform: lowercase;"></asp:TextBox>
この方法では、入力したテキストは小文字で表示されますが、テキストを実際に小文字に変換したい場合は、Javascript を使用する必要があります。
<asp:TextBox ID="txtTest" runat="server" onkeyup="this.value = this.value.toLowerCase();"
Style="text-transform: lowercase;"></asp:TextBox>
ところで、正規表現を使用することは悪い習慣ではありません。この場合は必要ありません。正規表現は、テキストの検索、検証、および解析に非常に便利で、作業がずっと簡単になります。唯一のトレードオフは、一部の正規表現パターンが非常に不明瞭で理解しにくいことです。
ユーザーがテキストを入力するとすぐに、クライアント側でテキストを小文字にしたいと思います。onkeypress
Eventでそれを処理できます:
<asp:TextBox Id="TextBox1" onkeypress="this.value = this.value.toLowerCase();" runat="server" />
キーを押すたびにトリガーされるのではなく、ページを送信するときにトリガーされるサーバー側では、String.ToLower
. たとえば、イベントを処理するTextBox
TextChanged
場合:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
TextBox1.Text = TextBox1.Text.ToLower();
}
.aspx マークアップにイベント ハンドラーを追加することを忘れないでください。
<asp:TextBox OnTextChanged="TextBox1_TextChanged" AutoPostBack="true" runat="server" Id="TextBox1" />