VB2005でWebアプリを作成しています。
HTMLデザイン画面にテキストボックスを作成し、入力された数値によって処理を行うのですが、入力時の段階で(貼付等は別として)指定した数字以外のキー入力をできないようにする方法はないでしょうか?
よろしくお願いします。
入力は、onkeypress イベントで keyCode を判断し、
貼付は、onbeforepaste イベントで clipboard の内容を
チェックしては如何でしょう。
deafalt.aspx.vbでtextbox1のイベントをドロップダウンから探して見ましたが、「onkeypress」や「onbeforepaste」が見つかりません。
どこで設定すればよいのでしょうか?
サーバサイドの VB コードでは駄目ですよ。
(キー入力の度に、サーバに PostBack させるわけにはいきませんよね?)
VB ではなく、JavaScript 側での制御を行ってください。
もしくは、ASP.NET AJAX の FilteredTextBox を使うとか。
《FilteredTextBox を使ってみよう》
http://www.microsoft.com/japan/msdn/asp.net/learnajax/default.aspx
《FilteredTextBox Sample》
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/FilteredTextBox/FilteredTextBox.aspx
まず、JavaScriptでの制御を試してみました。
以下のページを参考にしたのですが、onkeydownは要素'textbox'の有効な属性ではありません、というエラーが出てしまいました。作成したコードを載せますので、間違い等ありましたらご指摘ください。
http://javascript.eweb-design.com/1205_no.html
<head runat="server">
<title>無題のページ</title>
<script type="JavaScript">
<!--
// 数値のみを入力可能にする
function numOnly() {
m = String.fromCharCode(event.keyCode);
if("0123456789\b\r".indexOf(m, 0) < 0) return false;
return true;
}
//-->
</script>
</head>
<asp:TextBox ID="TextBox1" runat="server" Width="8px" MaxLength="1" onkeyDown="return numOnly()"></asp:TextBox>
知らね
てめぇで考えな
ツイート | ![]() |