- - PR -
DataGrid内のテキストボックス
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-16 22:55
こんばんは。
DataGrid内のテキストボックスへ入力された 値が数字のみかチェックし英字、記号が入力 されていればアラートを表示する方法を探し ています。 現在 ・MAXLENGTH指定で桁数制限 ・スタイルシートでIME無効 の措置は行っています。 がDataGrid内にある可変のテキストボックス を特定し入力値をチェックする方法がわから ず躓いています。 サーバ側でやるのが確実なのかな〜とも 思い始めたところですが。。 何か良い方法があれば教えて頂ければ幸いで す。 | ||||
|
投稿日時: 2004-12-16 23:11
こんばんは。
正規表現はどうですか? Webアプリですね? サーバー側でやるなら正規表現クラス http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingregularexpressionclasses.asp があるでしょうし、クライアントでもJavaScriptからでも正規表現が使えるんでは ないでしょうか。 | ||||
|
投稿日時: 2004-12-17 06:07
CompareValidatorコントロールのOperatorプロパティにDataTypeCheck、TypeプロパティにIntegerを指定すると数字のチェックができます。 この他、RegularExpressionValidatorコントロールを使用することも可能です。 予断ですが、DataGridで検証コントロールを使用するには、テンプレートカラムを使用します。 テンプレートカラムをダイナミックに追加するサンプル: http://www.friendlysw.com/samples/articles/Goto.aspx?id=030921-2 http://www.friendlysw.com/samples/articles/Goto.aspx?id=030921-3 [ メッセージ編集済み 編集者: Access 編集日時 2004-12-17 06:13 ] | ||||
|
投稿日時: 2004-12-17 11:10
とっとさん、Accessさんレスありがとうございました!!。
正規表現は何となく苦手なのでまだ試せていません。 AccessさんのCompareValidatorコントロールは試しました。 以下新たな疑問点。 ・DataGridの外に張ったCompareValidatorはGrid内のテキストは検知できない のでしょうか。 ・エラーメッセージの表示でなくスクリプトのalert文の実行はできないでしょ うか。 とりあえず。 いまのところは 下記のスクリプトで入力値チェックを施しています。 フォーム内にはGrid内以外にinputボタン、入力エリアが6つあり Gridの前に5つあるので、ループを5からスタート。 Gridの後に1つあるので、ループを総数−1で終了 させてます。 function checkGridValue() { var len = document.all.tags("INPUT").length - 1; var ret; var ret2; var name; for (i = 5; i < len ; i++) { obj = document.all.tags("INPUT")(i); ret = 数字かどうかチェック(obj.value); if(ret == false){ ret2 = 偶数かどうかちぇっく(i); if(ret2 == true){ alert("左側のテキストボックスには数字のみを入力してください。"); obj.focus() obj.select(); return false; }else{ alert("右側のテキストボックスには数字のみを入力してください。"); obj.focus(); obj.select(); return false; } } } return true; } |
1