- - PR -
【ASP】Validatorが自動設定するonChange(javascript)と自分で追記するonChangeの優先順位
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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(); 何か心当たりのある方、ぜひご教授ください。 よろしくお願いします。 | ||||
|
投稿日時: 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-22 14:30
簡単には実現できないと思います。
他の方法としては 自分で判断するスプリクトを追加する submit時にサーバ側で判断するようにする (ValidatorのEnableClientScriptをFALSE) | ||||
|
投稿日時: 2004-01-22 18:22
ゆうじゅん様
返事ありがとうございます。 あまり小細工はしたくないのでsubmit時にチェックすることにしました。 ありがとうございました。 | ||||
|
投稿日時: 2004-01-22 18:52
クライアントの検証スクリプトは自分で書くんだから、その中でやりたいことをやっちゃうとか???
| ||||
|
投稿日時: 2004-01-23 13:31
なるほど。クライアントの検証スクリプトは自分で書くということはCustomValidatorですね?
なるべくコーディングをしたくなかったんで、備え付けのRequiredFieldValidatorとか RangeValidatorで何とかならないかと考えていました。 ホントにどうしようもなくなったら、自作の検証スクリプトでやりたいことをやっちゃおうと思います。 Jittaさま、ご意見ありがとうございます。 この会議室でJitta様の貴重な情報をよく拝見しています。 | ||||
|
投稿日時: 2004-01-23 14:37
え?・・・あ〜!全部CustomValidatorで置き換えたんだった!!「コーディングできない」という理由で(^^; 失礼しました。。。 |
1