Modale Bootstrap-Dialoge mit einem einzelnen Texteingabefeld werden immer mit der Eingabetaste beendet

8

Warum wird dieser einfache modale Dialog mit einem Textfeld (und KEINE Tasten) ausgeblendet, wenn der Fokus auf dem Feld liegt und Enter gedrückt wird?

%Vor%

Es gibt eine ausführliche Diskussion hier , die darauf hindeutet, dass es sich um ein Button-Problem handelt ( Ich habe type="button" auf Button und Anker-Tags gesetzt. Ich habe Button-Tags in Anker umgewandelt). Ich habe jedoch alle vorgeschlagenen Lösungen ausprobiert und bin dann dazu gekommen, die Buttons komplett zu kommentieren, und es passiert immer noch.

Beachten Sie, dass das Problem verschwindet, wenn Sie einfach die gleiche Texteingabe duplizieren und zwei Felder haben (die Fokussierung auf eines der beiden Textfelder führt nicht zu einer Entlassung bei der Eingabe)

    
jpeskin 06.03.2013, 04:50
quelle

3 Antworten

12

Danke an @mccannf, dass er mich in die richtige Richtung weist. Dies scheint ein allgemeineres Form-Submission-Problem zu sein als irgendetwas, das spezifisch für Bootstrap ist. Zwei Lösungen:

1. Legen Sie das Attribut onsubmit des Formulars auf onsubmit="return false;" fest ( Ссылка )

Ich mag diese Lösung am besten, da es schwer vorherzusagen ist (und vielleicht vom Browser abhängig ist), welche Formularfelder eine Formularübertragung bei Eingabe von Enter auslösen können oder nicht.

Also, in meinem Beispiel von der ursprünglichen Frage:

%Vor%

2. Setzen Sie das Attribut onkeydown (oder onkeyup?) So, dass es false zurückgibt, wenn event.keyCode == 13 ( Ссылка ) In diesem Link funktionierte onkeyup, aber ich musste onkeydown (browserabhängig?) Verwenden

Also, in meinem Beispiel von der ursprünglichen Frage:

%Vor%     
jpeskin 06.03.2013, 18:56
quelle
6

Es ist nur, um die Antwort vorher zu klären und auf den Raketkin-Kommentar zu antworten.

1. Setzen Sie das Attribut onsubmit des Formulars auf onsubmit="return false;" ( Ссылка )

Diese Lösung ist hilfreich, wenn Sie das Senden des Formulars per Javascript als Beispiel steuern

%Vor%

Wie Sie sehen können, ist eine Formularübergabe durch den jquery Aufruf onclick der Schaltfläche save id.

Aber wenn Sie eine Aktion hinzufügen möchten, um ein Tag zu bilden, müssen Sie vielleicht die zweite Lösung verwenden

2. Setzen Sie das Attribut onkeydown (oder onkeyup?) Auf false, wenn event.keyCode == 13 ( Ссылка ) zurückgegeben wird

Meiner Meinung nach gefällt mir diese Lösung nicht, wenn Sie die Form dynamisch erstellen möchten.

    
Mara Jimenez 18.12.2013 09:40
quelle
4

Nur ein Kommentar zu Mara Jimenez Beitrag:

Es gibt eine andere Möglichkeit, Action-Tags zu verwenden und nicht mit Events herumzuspielen. Sie können eine unsichtbare Dummy-Eingabe im Formular hinzufügen, und die Eingabetaste würde sie nicht senden. Hier ist ein Beispiel:

%Vor%     
Igor Lovrić 21.08.2014 07:59
quelle