HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - Zwei offene Alert-Fenster

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zwei offene Alert-Fenster

 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   JavaScript
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
jsnewusr



Anmeldungsdatum: 28.05.2006
Beiträge: 4

BeitragVerfasst am: 28.05.2006 15:24:41    Titel: Zwei offene Alert-Fenster Antworten mit Zitat

Hallo !
In meinem Formular wird ein fehlerhaftes Feld korrigiert (und zwar wiederum fehlerhaft).
Danach wird der Sendebutton gedrückt.

Bei der Felddefinition (<input ...) wird über onChange die Feldprüfung angestoßen.
Die Betätigung des Sendebuttons löst über "onSubmit" eine Formularprüfung aus.
Die Feldprüfung meldet über ein alert-Fenster den Fehler im Feld und
die Formularprüfung meldet über ein zweites Fenster, dass noch Fehler vorhanden sind.
Wenn die Prüfungen nacheinander ablaufen würden, würde ein alert-Fenster geöffnet und das Programm würde erst weiterlaufen, wenn dieses Fenster geschlossen wird.
In Wirklichkeit erscheinen aber beide Fenster am Bildschirm.
Kann es also sein, dass parallel zwei Prüfungen ablaufen (onchange und onSubmit)? Oder woran könnte es sonst liegen ?
Wie kann man diese ggf. synchronisieren ?
Danke für Eure Unterstützung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jsnewusr



Anmeldungsdatum: 28.05.2006
Beiträge: 4

BeitragVerfasst am: 28.05.2006 21:49:18    Titel: Antworten mit Zitat

Zur Erläuterung:
Ich habe das Script stark vereinfacht. Wenn man in dem Eingabefeld einen Wert eingibt und dann den Senden-Button drückt,
so gehen zwei alert-Fenster auf. Wenn die Prüfungen nacheinander ablaufen würden, so würde nach meiner Ansicht ein Fenster
aufgehen und das Programm würde erst weiterlaufen, wenn dieses geschlossen wird.

Code:

<HTML>
<HEAD>

<script type="text/javascript" language="JavaScript">
function formularpruefung(f)
   {                                                                                               
// .........     
//   Fehler
    alert("Felder xyz fehlerhaft")
    return false

   }


function feldpruefung(feld, mb)
   {
// .......
//   Fehler 
    alert("Betrag fehlerhaft")
    return false

   }
</script>


</HEAD>
<BODY>


<form action="feedback.pl" method="post" name="formular"
      onSubmit = "return formularpruefung(this)">   
                 

<input name='wert' size='6' type='text' onChange="feldpruefung(this,10)"><br>
<input name="senden" value="Eingaben senden" type="submit">
</form>

</BODY>
</HTML>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 29.05.2006 14:01:38    Titel: Antworten mit Zitat

Natürlich werden zwei Funktionen gleichzeitig ausgeführt, da in dem moment wo du auf Absenden klickst, auch das Inputfeld den Fokus verliert. Deswegen solltest du dich auf eines von beidem beschränken.^^ Such dir was aus.


MfG Kambfhase
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jsnewusr



Anmeldungsdatum: 28.05.2006
Beiträge: 4

BeitragVerfasst am: 29.05.2006 14:10:55    Titel: Antworten mit Zitat

Es ist nach meinem Kenntnisstand üblich, die Felder über onChange zu prüfen und beim Absenden (onSubmit) das gesamte Formular zu prüfen, nämlich Abhängigkeiten der einzelnen Felder (wenn Feld1 angegeben, muss in Feld2 ein Wert > x stehen o.ä.).
Damit kann man nicht ausschließen, dass der Anwender ein Feld korrigiert und dann den Sende-Button drückt, womit der beschriebene Effekt aufträte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 29.05.2006 16:51:38    Titel: Antworten mit Zitat

dann erstelle eine globale Variable. diese bekommt einen ähnlichen Namen wie das Feld:

Code:
var feld1 = false ;


wenn du nun mit der OnChange-Ãœberprüfung durch bist und sie sagt, dass der Wert des Feldes richtig ist, änderst du die Variable in true:

Code:
if( ka == Wert)
{
  feld1 = true ;
}
else
{
  feld1 = false ;
}


Der Else-Teil ist auch Wichtig, da man sonst erst den richtigen Wert eingeben könnte und dann wieder falsch korrigiern.

In der OnSaubmit-Schliefe musst du dann diese Variable überprüfen:


Code:
if( feld1 =! true )
{
  alert("Bitte ihre eingabe bei Feld1 überprüfen!");
  return false ;
}


Und fertig ist die Laube^^ hoffe es stimmt alles was ich gesagt habe und funktionuckelt auch ... o.0


MfG Kambfhase
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jsnewusr



Anmeldungsdatum: 28.05.2006
Beiträge: 4

BeitragVerfasst am: 29.05.2006 19:54:37    Titel: Antworten mit Zitat

Da die onSubmitprüfung parallel zur onChangeprüfung abläuft, ist die globale Variable nach Korrektur des Feldes von einem korrekten in einen falschen Wert noch nicht auf false gesetzt, wenn sie Submitprüfung ausgeführt wird und der submit wird trotz Fehler ausgeführt.
Ich habe inzwischen festgestellt, dass mein ursprüngliches Programm bei Opera und Microsoft IE funktioniert, bei Netscape und Firefox nicht.
Ich werde daher schweren Herzens alle Prüfungen erst beim Submit durchführen (wie es mir an anderer Stelle empfohlen wurde)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sir Quicksand
Häufiger Poster


Anmeldungsdatum: 19.01.2005
Beiträge: 304
Wohnort: Hannover

BeitragVerfasst am: 31.05.2006 10:33:51    Titel: Antworten mit Zitat

Wollte ich auch gerade vorschlagen. Was willst du denn wärend der Eingabe prüfen? Ob eine Email Addie richtig ist? Beim ersten Buchstaben bei mir "s" würde schon ein Fehler generiert, obwohl ich noch garnicht richtig fertig bin. Es macht höchstens wärend der Eingabe sinn, wenn Du nur Buchstaben oder Zahlen und keine Sonderzeichen erlauben wolltest.

Noch was, ich finde Alerts scheiße, da man sie wegklicken muß. Macht doch sowas:
<input id=fehler_1 type=text value="Achtung Fehler, mach richtig" style="visibility: hidden">

JS:
if($fehler == true)
{
document.formular.fehler_1.style.visibility = show;
}

ACHTUNG:
Dies soll das Prinzip zeigen. Die Style Argumente noch mal checken.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 31.05.2006 15:39:53    Titel: Antworten mit Zitat

joa, stimmt^^

@ Qiucksand: Statt Visibility würde ich Display verwenden, dann ist es GANZ weg, allerdings werden darunter liegende objekte neu angeordnet, das ist der Nachteil. Und statt den nerfigen Alerts kann man auch Confirm verwenden. dann kann man das fenster zumindest noch schliessen, was bei Alert nicht geht^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   JavaScript
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.