confirm zeigt keine Wirkung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • confirm zeigt keine Wirkung

    Vor dem Eintrag in eine Datenbank möchte ich eine Sicherheitsbafrage einbauen. Dazu rufe ich unter <form> per onsubmit eine Funktion auf, die u.a. mit confirm das Bestätigungsfenster öffnet.
    Aber egal, was darin angeklickt wird, das Formular wird mit allen Variablen ausgeführt.

    Ich habe mit einer Messagebox den Wert von return (true oder false) abgefragt und es funktioniert. Aber bei false wird nicht, wie mit location. href angeführt auf eine andere Seite weitergeleitet, sondern das Formular wird ausgeführt.

    Ich habe schon etliche verschiedene Varianten aus Tutorials und Foren ausprobiert.
    ein Beispiel aus selfHTML:
    Code:
    Check = confirm("Wollen Sie diese Seite wirklich sehen?");
    if (Check == false)
      history.back();
    Das sollte doch eigentlich funktionieren oder? Tut es aber nicht.

    Das ganze unter Apache 2.?, PHP 5.? und IE 7.
    Hat jemand eine Idee?

  • #2
    Zeige doch mal den Codebereich, wie du das machst, ich meine wie du darauf reagierst.

    Kommentar


    • #3
      versuchs mal mit:
      HTML-Code:
      <form onsubmit='return confirm("Wollen Sie diese Seite wirklich sehen?");'>
      .........
      </form>
      IM: Pidgin | Browser: Chromium Firefox | HTML: SelfHTML | PHP: PHP.net SelfPHP | Linux: GnomeDo



      And remember, respect is everything!

      Kommentar


      • #4
        Zitat von Forsaken Beitrag anzeigen
        versuchs mal mit:
        HTML-Code:
        <form onsubmit='return confirm("Wollen Sie diese Seite wirklich sehen?");'>
        .........
        </form>
        Das geht nicht, da das confirm nur unter bestimmten Voraussetzungen aufgerufen wird.

        Hier der Aufruf:
        Code:
        <form action="'.$PHP_SELF.'" method="get" name="frm_stunden" onsubmit=\'pruef(this.von_std_a.selectedIndex,this.von_teil_std_a.selectedIndex,this.bis_std_e.selectedIndex,this.bis_teil_std_e.selectedIndex,this.dat_a.value,this.dat_e.value)\'>
        Hier die Funktion:
        Code:
         function pruef(beg_std,beg_min,end_std,end_min,dat_a,dat_e)
         {  
          var beginn= beg_std * 60 + beg_min;
          var ende = end_std * 60 + end_min;
          
          if (ende < beginn || dat_e > dat_a)  
          {
            ende = ende +1440;    
          }
          
          if (ende - beginn > 720)
          {
           if (confirm("Sie haben einen Zeitraum mit mehr als 12 Stunden eingegeben!\nWollen Sie diese Eingabe so speichern?"))
           {
            return true
           }
           else
           {
            location.href("nw_start.php"); 
           }
         
          }    
         }

        Kommentar


        • #5
          Allgemein sollte das zurückgeben von "false" innerhalb von onsubmit verhindern das das Forumlar abgeschickt wird.
          Also einfach wenn in deiner funktion confirm() nicht bestätigt wurde false zurückgeben.
          Ausserdem solltest du innerhalb des onsubmit ein "return" vor deine Funktion setzen.
          Also dann:
          Code:
          [...] onsubmit=\'return pruef(this.von_std_a.selectedIndex,this.von_teil_std_a.selectedIndex,this.bis_std_e.selectedIndex,this.bis_teil_std_e.selectedIndex,this.dat_a.value,this.dat_e.value)\' [...]
          IM: Pidgin | Browser: Chromium Firefox | HTML: SelfHTML | PHP: PHP.net SelfPHP | Linux: GnomeDo



          And remember, respect is everything!

          Kommentar


          • #6
            Allgemein sollte das zurückgeben von "false" innerhalb von onsubmit verhindern das das Forumlar abgeschickt wird.
            Tja, so steht es geschrieben. Aber mein Javascript weiß das anscheinend nicht.
            Egal, was ich versuche, "confirm" zeigt keine Wirkung.

            Kommentar


            • #7
              So, ich glaube, ich hab's jetzt:
              Code:
              		if (ende - beginn > 720)
              		{
              			var wasdennjetzt = confirm("Sie haben einen Zeitraum mit mehr als 12 Stunden eingegeben!\nWollen Sie diese Eingabe so speichern?")
              
              			if (wasdennjetzt == false)
              			{
              			location.href("nw_start.php");
              			return false;			
              			}
              			
              			if (wasdennjetzt == true)
              			return true;
              	
              		}
              Entscheidend ist, dass in der false-Abfrage ein
              Code:
              return false;
              steht, wenn im onsubmit auch ein return aufgeführt ist.
              Wie auch immer, der o.g. Code funktioniert.

              Kommentar

              Lädt...
              X