Verhindern postback auf, Geben Sie in einem asp.net inputfield

Ich habe ein problem mit der Taste Enter werden die im javascript und asp.net

Habe ich eine Kontrolle, wie dies mit einem textchanged-Ereignis, die nicht finden, aber ich will es kontrollieren, wenn der Benutzer nicht geben Sie

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event)" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged" />

Deshalb habe ich diese javascript-Funktion die sehr gut funktioniert. Denn es vermeidet die Enter-postback bei jeder Zeicheneingabe

    function EnterEvent(e) {
        var keycode = (e.keyCode ? e.keyCode : e.which);
        if (keycode == 13) {
            return true;
        }
        else {
            return false
        }
    }

Und dann wollte ich Steuern, Wann der TextBox-Inhalte, also änderte ich das js wie diese.

    function EnterEvent(e, ctrl) {
        var keycode = (e.keyCode ? e.keyCode : e.which);
        if (keycode == 13) {
            return ctrl.value.length > 2;
        }
        else {
            return false
        }
    }

Die Kontrolle

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event, this)" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged" />

Aber es passiert nichts. Jederzeit, die ich Tue, Geben Sie die Seite ein postback.

Ich habe auch diese in der code-behind auf der Last-Seite

            TextBox1.Attributes.Add("onkeypress", "EnterEvent(event, this);");
            TextBox1.Attributes.Add("onkeyup", "EnterEvent(event, this);");
            TextBox1.Attributes.Add("onkeydown", "EnterEvent(event, this);");

Meiner Seite ist noch zu tun postback auf Enter-Taste. Die Idee ist, stoppen Sie die Enter-postback, wenn mindestens 3 Zeichen. Eine Idee oder einen anderen Ansatz?

> -----------------BEARBEITEN--------------------

Ich fügte hinzu, diese Funktion, bevor Sie die EnterEvent

    $(function () {
        $(':text').bind('keydown', function (e) { 
            if (e.keyCode == 13) 
                e.preventDefault();
        });
    });

Aber blockiert es die Eingabe in alle Seite. Geben Sie funktioniert überhaupt nicht.

> -----------------BEARBEITEN 2--------------------

Gut, ich geglückt! Wie ich sagte in einem vorherigen Kommentar, ich habe versucht, wie in der Vergangenheit das hinzufügen einer dummy-button-Steuerelement, und ich übertragen das event von der textbox und dem aufrufen der click-Ereignis. Es ist nicht SAUBER, aber es funktioniert und ich bin in Eile. Danke Euch allen für die Beantwortung. Wenn jemand helfen kann, trotzdem würde ich es zu schätzen wissen. Ich werde weiterhin die überprüfung dieser Frage. Danke.

    function EnterEvent(e, ctrl) {
        var keycode = (e.keyCode ? e.keyCode : e.which);
        if (keycode == 13 && ctrl.value.length > 2) {
            $('[id$=Button1]').click();
        }
        else {
            return false;
        }
    }

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event, this)" />
<asp:Button ID="Button1" runat="server" OnClick="TextBox1_TextChanged" style="visibility:hidden;width:0;"/>
wie wäre es mit einem updatepanel und in der codebehind-Ereignis, das Sie sehen, wenn es mehr als 3 Zeichen ?
Ich hab das jetzt einfach. Postback und setzt die Steuern verschwinden.
uhm okay, wie hast du deine trigger ?
Gut und soweit ich weiß, wird die TextBox nicht haben, so ein event onkeyup ?
Ich habe gebaut, ein Spielmann, siehe unten, vielleicht ist das ein guter Ort, um zu versuchen, heraus Material. Es scheint für mich arbeiten.

InformationsquelleAutor Maximus Decimus | 2013-09-05

Schreibe einen Kommentar