- PR -

【ASP】Validatorが自動設定するonChange(javascript)と自分で追記するonChangeの優先順位

1
投稿者投稿内容
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2004-01-21 19:45
こんにちは。
asp.netで開発をしております。

さて、本題に入ります。

フォームにテキストボックスが2つ(仮に@、A)とRangeValidatorあります。
@入力可で、AはReadOnlyです。
@のAttributes("onChange")に、@の値+1(要は何らかの関数を通した結果)をAにセットするscriptを記述します。
@.Attributes("onChange") = "javascript:A.value=@.value+1;"こんな感じ
RangeValidatorのControlToValidateにAを設定します。RangeValidatorの検証範囲は適当です。

実行して、ブラウザの[スクリプトデバッガ]-[次のステートメントで中断]をして@の値を変えると次のanonymous関数が現れます。以下のように・・・
function anonymous() {
ValidatorOnChange();
@.Attributes("onChange")に記述したscript;}

私は、この順番を変えたくて悩んでいます。以下のようにしたいのです。
function anonymous() {
@.Attributes("onChange")に記述したscript;}
ValidatorOnChange();

何か心当たりのある方、ぜひご教授ください。
よろしくお願いします。
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2004-01-22 09:40
おはようございます。
上の例だとわかりにくいので、別の例を説明させてください。

@フォームにTextBoxとRangeValidatorを1つずつ配置します。
APage_Loadイベントに以下のように記述します。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Attributes("onChange") = "javascript:this.value=parseFloat(this.value)+1;"
RangeValidator1.ControlToValidate = "TextBox1"
RangeValidator1.Type = ValidationDataType.Double
RangeValidator1.MaximumValue = 9
RangeValidator1.MinimumValue = 0
End Sub
B実行してスクリプトデバッガで止めてみます。

自分で書いたonChangeの実行後にValidatorOnChangeが動いて欲しいです。
簡単な実現方法がなければスッパリとあきらめるつもりです。
あきらめたほうがいい等の意見もよろしくお願いします。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-01-22 14:30
簡単には実現できないと思います。

他の方法としては

自分で判断するスプリクトを追加する

submit時にサーバ側で判断するようにする
(ValidatorのEnableClientScriptをFALSE)

かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2004-01-22 18:22
ゆうじゅん様

返事ありがとうございます。
あまり小細工はしたくないのでsubmit時にチェックすることにしました。

ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-22 18:52
 クライアントの検証スクリプトは自分で書くんだから、その中でやりたいことをやっちゃうとか???
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2004-01-23 13:31
なるほど。クライアントの検証スクリプトは自分で書くということはCustomValidatorですね?
なるべくコーディングをしたくなかったんで、備え付けのRequiredFieldValidatorとか RangeValidatorで何とかならないかと考えていました。
ホントにどうしようもなくなったら、自作の検証スクリプトでやりたいことをやっちゃおうと思います。

Jittaさま、ご意見ありがとうございます。
この会議室でJitta様の貴重な情報をよく拝見しています。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-23 14:37
引用:

かめたろさんの書き込み (2004-01-23 13:31) より:

クライアントの検証スクリプトは自分で書くということはCustomValidatorですね?
なるべくコーディングをしたくなかったんで、備え付けのRequiredFieldValidatorとか RangeValidatorで何とかならないかと考えていました。


え?・・・あ〜!全部CustomValidatorで置き換えたんだった!!「コーディングできない」という理由で(^^; 失礼しました。。。
1

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