プロが教える店舗&オフィスのセキュリティ対策術

ASP.NET+VB.NET(2.0)でWebアプリを作成しております。

TextBoxのTextChangedイベントは値が変更したときにしか発生されない
ようですので、値が変更されなくてもTextChangedイベントとしてサー
バサイドで処理をしたいのですがよい方法が思いつきません。

TextBoxにJavaScriptのonBlurでTextChangedイベントを擬似的に発生さ
せる方法をご存じの方、よろしくお願いいたします。

A 回答 (2件)

<input type="text" onchange="alert('onchange')" onblur="this.onch

t;>

この回答への補足

VB側でTextChangedイベントとして拾いたいのでこれでは無理かと…。

また、この場合
<input type="text" onblur="alert('onchange')">
と同じことですよね?

補足日時:2006/11/17 14:42
    • good
    • 1

お世話になります。



> TextBoxのフォーカスアウトでPostBackを実装させたい
このことだけであれば、TextBox の AutoPostBack プロパティを
True にすれば実現できると思います。
ただし、これは値が変更された時のみに限られます。

> 値が変更されなくてもTextChangedイベントとしてサーバサイドで処理をしたい
上記 AutoPostBack プロパティとの組み合わせにより
onBlur="javascript:setTimeout('__doPostBack(\'TextBox1\',\'\')', 0)"
と書けば、サーバー側へポストはされます(Page_Load は通る)が、
TextChangeEvent は発生しません。
本来 TextChange のイベントではないわけですので、
もし出来たとしても、実装するのは私は賛成しかねます。

どうしても、何も無い時にも TextChanged をと同等の処理をやりたいのであれば、
PageLoad の中で Text が変わったかどうかを判断して
変わっていれば TextChanged 、そうでなければ
PageLoad 内でそれなりの処理をする等の方法があると思います。

この回答への補足

回答ありがとうございます。
> 上記 AutoPostBack プロパティとの組み合わせにより
> onBlur="javascript:setTimeout('__doPostBack(\'TextBox1> > > > > \',\'\')', 0)"
> と書けば、サーバー側へポストはされます(Page_Load は通る)が、
> TextChangeEvent は発生しません。
> 本来 TextChange のイベントではないわけですので、
> もし出来たとしても、実装するのは私は賛成しかねます。
当方もこの方法は試してみましたが、どうも動きに不安を感じたので
実装させていません。
TextChangeEventを発生させるには__doPostBack関数にどういった
引数を送るのかが謎です。

> どうしても、何も無い時にも TextChanged をと同等の処理をやりた> いのであれば、
> PageLoad の中で Text が変わったかどうかを判断して
> 変わっていれば TextChanged 、そうでなければ
> PageLoad 内でそれなりの処理をする等の方法があると思います。
今現在は、JavaScriptでonBlur時にHidden項目に値を入れ、その後submitさせてPage_Loadで判断させるようにしています。
しかし、この場合だとMasterPageなど使っている場合にいろいろと
制限が出てきてしまうので、やはりTextChangeEventとして拾いたい
ところです。

補足日時:2006/11/20 11:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています