Ich habe eine Webseite mit einem textbox wie unten -

<asp:TextBox ID="txtNumber" runat="server" size="5" MaxLength="9" 
    AutoPostBack="True" OnTextChanged="txtNumber_TextChanged" 
    CssClass="txtBoxPage" Style="margin-left: 3px;" 
    Visible="false" onblur="return [some JS function] false;">
</asp:TextBox>

Ich möchte eine solche Funktionalität, dass Postback nicht ausgelöst werden sollte, wenn der Benutzer Nothing eingibt, d. H. ('') In textbox und den Cursor außerhalb von textbox bewegt. Derzeit wird es auch dann ausgelöst, wenn das Ereignis onblur false zurückgibt.

3
Sumit Deshpande 10 Okt. 2012 im 10:24

2 Antworten

document.getElementById('txtnumber').onchange=function(){
    if(this.value!=""){
        _doPostBack('txtNumber',this.value);
    }
}

Sie können den Wert dann mit dem Eintrag Request ["__ EVENTARGUMENT"] abrufen. Stellen Sie außerdem sicher, dass AutoPostback deaktiviert ist.

BEARBEITEN: In Ihrem txtNumber_TextChanged-Handler zum Beispiel:

private void txtNumber_TextChanged handler
{
    Response.Write(Request["__EVENTARGUMENT"]);
    //Writes the value of the TextBox. Basically, EVENTARGUMENT is the second argument passed when calling _doPostBack
}

Beachten Sie, dass dies völlig optional ist, da Sie weiterhin mit dem txtNumber-Objekt (wie üblich) auf den Wert von txtNumber zugreifen können.

BEARBEITEN: Beachten Sie, dass Sie beim Abrufen eines Verweises auf das Element document.getElementById die Client-ID als Argument übergeben müssen. Befindet sich das txtNumber-Objekt beispielsweise in einer FormView mit dem Namen FormView1, lautet die resultierende Client-ID FormView1_txtNumber. Eine der folgenden Änderungen an Ihrem Code sollte das Problem beheben:

1) Wenn sich Ihr Javascript in einem Skript-Tag auf der Aspx-Seite befindet, ändern Sie einfach document.getElementById('txtNumber') in document.getElementById('<%= txtNumber.ClientID %>')

2) Wenn Sie eine externe JS-Datei verwenden, ändern Sie document.getElementById('txtNumber') in document.getElementById(txtNumberClientID) und fügen Sie das folgende Skript-Tag in Ihre Aspx-Seite ein, bevor Sie Ihre JS-Datei aufrufen:

<script type="text/javascript">
    window.txtNumberClientID='<%= txtNumber.ClientID %>';
</script>

Lassen Sie mich wissen, ob dies funktioniert

2
Asad Saeeduddin 10 Okt. 2012 im 08:28

Sie können den folgenden Code in jquery verwenden

 <script>
    $('[id$=TextBox1]').live('blur', function (e) {
        if ($('[id$=TextBox1]').val() == '') {
            alert('empty');
            e.preventDefault();
            return false;
        } else {
            alert('fillled');
        }
    });
</script>

Probieren Sie diesen Code aus, hoffentlich funktioniert er für Sie ...

1
Ram Singh 10 Okt. 2012 im 07:04