2009-07-09 19 views
4

javascript onchangeイベントを使用して、条件付きでasp:TextBoxのOnTextChanged AutoPostBackをキャンセルする方法を見つけられません。クライアント側でポストバックの必要性を否定する条件を確認するのは簡単なので、これを実行したいと思います。私は、これはDoMyCheck()がtrueを返した場合、ポストバックを進めるかDoMyCheck()がfalseを返した場合、それをキャンセルするだろうどちらかと思っJavascript OnChangeイベントを使用して条件付きでテキストボックスのAutoPostBackをキャンセルする

<input name="tb1" type="text" onchange="return DoMyCheck(); setTimeout('__doPostBack(\'tb1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="tb1"/> 

<script type='text/javascript'> 
    function DoMyCheck() 
    { 
     if(something) 
     { 
      return false; 
     }else 
     { 
      return true; 
     } 
    } 
</script> 

私は、クライアントのHTMLで生成されたこのようなものを持っています。どうやらそれはいつも毎回取り消す。長い.NET IDを簡略化し、AutoPostBack = trueに設定すると、setTimeout()とOnKeyPress()が自動生成されたことに注意してください。私が本当にそこに入れた唯一のコードは、onchangeイベントでした。

私はここに掲載一つの解を見た:http://www.eggheadcafe.com/community/aspnet/3/10042963/try-this.aspx

をしかし、私は手動で私はそれを助けることができる場合、ポストバックを行うために内部の.NETのjavascriptにフックする必要がありますする必要はありませんので、これは私の心の中に受け入れられません。

誰かがより良い解決策を持っていますか?私はあなたが与えることができるどんな助けにも非常に感謝します。

答えて

4

常に返されるので、ポストバックは呼び出されません。関数がfalseを返す場合にのみ、false(イベントを取り消す)を返す必要があります。

onchange="if(!DoMyCheck()) return false; setTimeout('__doPostBack(\'tb1\',\'\')', 0)" 
+0

私はそれを逃したと信じられません!ご協力いただきありがとうございます。 – jakejgordon

関連する問題