2009-07-09 4 views
4

Ich habe Probleme herauszufinden, eine Möglichkeit, eine Asp asphaltbedingte abbrechen: TextBox OnTextChanged AutoPostBack mit einem Javascript Onchange-Ereignis. Ich möchte dies tun, weil es für mich leicht wäre, einige Bedingungen auf der Client-Seite zu überprüfen, die die Notwendigkeit eines Post-Backs ausschließen würden.Verwenden von JavaScript OnChange-Ereignis zum bedingten Abbrechen AutoPostBack auf Textbox

Ich habe so etwas wie dies in dem Client-HTML generiert:

<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> 

ich dies entweder mit der Postbacks voran gehen würde dachte, wenn DoMyCheck() zurückgegeben wahr oder stornieren, wenn DoMyCheck() false zurück. Offensichtlich bricht es jedes Mal ab, egal was passiert. Beachten Sie, dass ich die langen .NET-IDs vereinfacht habe und dass setTimeout() und OnKeyPress() automatisch generiert wurden, wenn ich AutoPostBack = true setzte. Der einzige Code, den ich wirklich dort eingegeben habe, war das Onchange-Event.

Ich sah eine Lösung hier gepostet: http://www.eggheadcafe.com/community/aspnet/3/10042963/try-this.aspx

aber dies ist nicht akzeptabel in meinem Kopf, weil ich nicht manuell haben, will in interne .NET Haken JavaScript, um die Postbacks zu tun, wenn ich ihm helfen kann.

Hat jemand eine bessere Lösung? Ich schätze jede Hilfe, die Sie geben können.

Antwort

4

Sie kehren immer zurück, so dass Postback nie aufgerufen wird. Sie sollten nur false zurückgeben (das Ereignis abbrechen), wenn Ihre Funktion false zurückgibt ...

+0

Sie sind genau richtig - ich kann nicht glauben, dass ich das verpasst habe! Danke für Ihre Hilfe. – jakejgordon

Verwandte Themen