- PR -

CustomValidatorのクライアントサイドで文字列の長さをチェックしたい。

1
投稿者投稿内容
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2007-09-05 15:03
CustomValidatorでTextBoxの文字列の長さチェックをしたいのですが
クライアントサイドのスクリプトで困っています。

http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.customvalidator(VS.80).aspx
を読んでクライアントスクリプトを作ろうとしてみました。

コード:

function CheckLength(source, arguments) {
alert('A');
var val = arguments.Value;
alert(val);
if(val == "")
{
arguments.IsValid = true;
return;
}

var len = 0;
var c;
for (i = 0; i < val.length; i++) {
c = escape(val.charAt(i));
if(c.length > 3)
len += 2;
else
len += 1;
}
alert(arguments.maxLength);
if(len <= arguments.maxLength)
arguments.IsValid = true;
else
arguments.IsValid = false;
}



しかしarguments.maxLengthがundefinedになってしまい
どうやったら長さデータを指定できるのか分かりません。
どなたか教えてください。


[ メッセージ編集済み 編集者: island_town 編集日時 2007-09-05 15:04 ]

[ メッセージ編集済み 編集者: island_town 編集日時 2007-09-05 15:15 ]

[ メッセージ編集済み 編集者: island_town 編集日時 2008-01-09 20:22 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-05 16:49
何を参考にmaxLengthになったのでしょうか。TextBoxの文字列の「長さ」ですよね。
arguments.Value.lengthじゃないですかね。
maxLengthをとりたいなら多分テキストボックスをelementとしてとらないとだめですね。
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2007-09-05 16:51
TextBoxのmaxLengthプロパティを取りたかったのです。
汎用スクリプトとしたいので
TextBoxの名前を指定しては意味がありません。

[ メッセージ編集済み 編集者: island_town 編集日時 2007-09-05 16:53 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-05 17:07
あーーごめんなさい、、コードをよく読んでませんでした。

引用:
TextBoxの名前を指定しては意味がありません。

とはいえCustomValidatorのプロパティに指定してませんかね。

javascript でいうとCustomValidator1.controltovalidateという変数にIDが入ってます。
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2007-09-05 17:17
var maxlen = document.form1.elements[source.controltovalidate].maxLength;
で取得できました。
ありがとうございました。

[ メッセージ編集済み 編集者: island_town 編集日時 2007-09-05 17:26 ]
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2007-09-06 10:07
あページのソースを見たら書いてありますね。
気づきませんでした。
本当に助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)