JavaScript: trigger() wird nicht ausgelöst?
Hi zusammen,
ich versuche mit JavaScript ein paar input-Felder zu validieren.
Leider wird die Seite nicht abgeschlossen, nachdem alle Felder befüllt wurden.
Hat jemand eine Idee?
Ich muss immer, nachdem alle Felder befüllt sind, nochmals in irgendein input-Feld klicken, damit es geht.
Hier mein Code:
$(document).ready(function() {
$('input').on('click',function() {
// Validation
var vorname_firma = $("input[name='vorname']").val();
var strasse = $("input[name='strasse']").val();
var plz = $("input[name='plz']").val();
var ort = $("input[name='ort']").val();
if (vorname_firma != "" && strasse != "" && plz != "" && ort != "") {
$(function() {
$('#tab3').trigger("click");
});
}
});
});
2 Antworten
Du solltest das Formular nicht automatisch durch verschiedene Seiten springen lassen, sondern dem Nutzer diese Kontrolle überlassen. Angenommen, der Nutzer möchte nach dem Ausfüllen aller Felder eines nochmal ergänzen / Inhalte korrigieren oder sich etwas dazu aufschreiben. Diese Möglichkeit lässt du ihm nicht.
Binde also stattdessen eine Pagination / einen Button ein, auf den der Nutzer selbst klicken kann. Dieser Button lässt sich auch mit einem entsprechenden Klick-Event ausstatten.
Ansonsten kannst du auch trotzdem das submit-Event nutzen. Das tatsächliche Versenden der Daten muss halt nur blockiert werden, so lange nicht alle Felder ausgefüllt wurden.
Ich muss immer nachdem alle Felder befüllt sind , nochmals in irgendein Input-Feld klicken damit es geht.
Natürlich. Wenn der Nutzer das letzte Eingabefeld anklickt, ist dieses ja immer noch leer und das Formular somit invalid. Du müsstest stattdessen ein Event wie change verwenden.
Man könnte i.e. versuchen, stattdessen ein submit auf das Form auszulösen.
das soll erst zu einem späteren Zeitpunkt passieren.
Damit du weisst was ich baue:
ich habe ein TAP-Menu mit 4 Seiten. Auf jeder seite sind ein paar INPUT-felder. Nachdem eine Seite befüllt wurde, spingt das Script auf einen neuen TAB. Erst auf der letzten Seite soll der FORM-Button ausgelöst werden. Hoffe, du verstehst was ich meine. ;-)
In dem Fall würde ich empfehlen, entsprechende Funktionen zum Springen auf die nächste Seite zu nutzen, statt ein Event an einem Objekt auszulösen, dass dann derartige Funktionen aufruft.
Du wirst bei #tab3 im Oncklick eine Funktion haben. Diese kannst du direkt aufrufen.
ich okay. Glaube ich weiß´, was du meinst. Ich versuchs mal
Danke für deine Antwort.
Ich habe zusätzlich eine NAV eingebaut die es dem Anwender erlaubt zwischen allen Seiten zu springen und Korrekturen vorzunehmen. = Check
Jetzt wo du es schreibst, erscheint mir der Fehler logisch.
(invalid).
Leider verstehe ich nicht genau, wo ich das Event change einbauen sollen.
anstatt on. oder wie meinst du das ?