Peete: confirm

Hallo !

Habe ein Formular und auf den 'Löschen'-Knopf mit onClick die Funtion warnung() gelgt:

function warnung()
{
  var check = confirm('Bist Du sicher, dass Du den Eintrag L&OumlSCHEN willst?');
  if(check == false) ???;
}

Was muss ich nun bei ??? schreiben, damit das Formular NICHT abgesendet wird, sondern das Formular erneut angezeigt wird, also schlicht gar nichts weiter passiert.

Danke für eure Hilfe

Peete

  1. hallo,

    Habe ein Formular und auf den 'Löschen'-Knopf mit onClick die Funtion warnung() gelgt

    Zuviel Arbeit. Mach es so:
      onclick="confirm('Bist Du sicher, dass Du den Eintrag L&OumlSCHEN willst?')"
    Das genügt. "confirm" erstellt ein kleines Fensterchen mit einer Ja/Nein-Abfrage, und wenn man vor lauter Schreck "Nein" klickert, passiert auch nix. Allerdings kommts auch ein bissel darauf an, wie dein Formular angelegt ist, es kann passieren, daß trotzdem was abgesendet wird, aber das sieht man erst, wenn du dein Formular mal vorgestellt hast.

    Grüße aus Berlin

    Christoph S.

    1. , aber das sieht man erst, wenn du dein Formular mal vorgestellt hast.

      Voilà:

      <form action="" method="post">
       <table width="300" border="0" align="center" style="margin-top:30px;">
         <tr>
        <td>Name</td>
        <td><input type="text" name="form[name]" value="<? echo $form['name']; ?>" /></td>
         </tr>
         <tr>
        <td>Email</td>
        <td><input type="text" name="form[email]" value="<? echo $form['email']; ?>" /></td>
         </tr>
         <tr>
        <td>Homepage</td>
        <td><input type="text" name="form[homepage]" value="<? echo $form['homepage']; ?>" /></td>
         </tr>
         <tr>
        <td>Ort</td>
        <td><input type="text" name="form[ort]" value="<? echo $form['ort']; ?>" /></td>
         </tr>
         <tr>
        <td>Kommentar</td>
        <td><textarea name="form[kommentar]"><? echo $form['kommentar']; ?></textarea></td>
         </tr>
         <tr>
        <td style="height:75px; ">
        <input name="aktion" type="submit" value="Löschen !" onClick="confirm('Bist Du sicher, dass Du den Eintrag L&OumlSCHEN willst?')" />
        </td>
        <td align="right">
        <input name="form[id]" type="hidden" value="<? echo $form['id']; ?>" />
        <input name="aktion" type="submit" value="Bearbeiten !" />
        </td>
         </tr>
       </table>
       </form>

      Also so geht es nicht, bei "Abbrechen" wird es immer noch abgeschickt, brauch ich nicht irgendwo ein "return false" oder sowas, erinnere mich nur dunkel...

      Danke schon mal!!

      1. morgens,

        <form action="" method="post">

        Ich nehme an, daß bei "action" noch was drinsteht. Wenn du die ganze Konstruktion bereits innerhalb eines PHP-Scripts laufen läßt, muß das nicht zwingend sein, macht aber eine Antwort etwas unsicherer.

        <table width="300" border="0" align="center" style="margin-top:30px;">

        Tabelle darfst du gerne nehmen, aber denke bitte daran, daß alle Angaben auch eine Maßeinheit verlangen. Außerdem sollte die Formatierung der Tabelle besser in einer CSS vorgenommen werden.

        <input name="aktion" type="submit" value="Löschen !" onClick="confirm('Bist Du sicher, dass Du den Eintrag L&OumlSCHEN willst?')" />
          </td>
          <td align="right">
          <input name="form[id]" type="hidden" value="<? echo $form['id']; ?>" />
          <input name="aktion" type="submit" value="Bearbeiten !" />

        Fällt dir nichts auf? Du verwendest innerhalb deines Formulars zweimal einen "submit"-button. Sie haben auch noch beide denselben Namen. Korrigiere das.

        Also so geht es nicht, bei "Abbrechen" wird es immer noch abgeschickt

        Ja, weil es zwei "submit"-buttons gibt

        brauch ich nicht irgendwo ein "return false" oder sowas, erinnere mich nur dunkel...

        Wenn du gerne möchtest, kannst du eine return-Angabe beim EventHandler anbringen. Dazu bitte eine aussagekräftige Dokumentation konsultieren *g*

        Grüße aus Berlin

        Christoph S.

        1. hi,

          <table width="300" border="0" align="center" style="margin-top:30px;">

          Tabelle darfst du gerne nehmen, aber denke bitte daran, daß alle Angaben auch eine Maßeinheit verlangen.

          nein, bei den HTML-attributen ist keine erforderlich; wenn pixel gemeint sind, _darf_ dort sogar nur der blanke zahlwert ohne einheit stehen.

          Wenn du gerne möchtest, kannst du eine return-Angabe beim EventHandler anbringen.

          aber bitte beim _richtigen_ eventhandler - und der wäre onSubmit im form.

          beim onClick auf den submit-button false zurückzugeben, hält das abschicken des formulars m.W. nicht auf.

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. hi,

            Wenn du gerne möchtest, kannst du eine return-Angabe beim EventHandler anbringen.
            aber bitte beim _richtigen_ eventhandler - und der wäre onSubmit im form.
            beim onClick auf den submit-button false zurückzugeben, hält das abschicken des formulars m.W. nicht auf.

            Wie recht du aber auch manchmal haben kannst, grmpf ... ;-)

            Grüße aus Berlin

            Christoph S.

            1. hi,

              aber bitte beim _richtigen_ eventhandler - und der wäre onSubmit im form.
              beim onClick auf den submit-button false zurückzugeben, hält das abschicken des formulars m.W. nicht auf.

              Wie recht du aber auch manchmal haben kannst, grmpf ... ;-)

              für die einfachste methode halte ich die folgende:

              • in einem javascript-bereich im head eine globale variable anlegen,
                var abschicken;
              • onClick auf den löschen-button dieser das ergebnis des confirms zuweisen, onClick="abschicken=confirm(...);"
              • onClick auf dem anderen button, der _immer_ sofort abschicken soll, sicherheitshalber true zuweisen, onClick="abschicken=true;" (für den fall, dass zuerst auf löschen geklickt, confirm dann aber abgebrochen wurde - abschicken hat anschließend ja den wert false).
              • und im form dann einfach onSubmit den aktuellen wert von abschicken zurückgeben lassen, onSubmit="return abschicken;"

              gruß,
              wahsaga

              --
              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
              1. gruß,
                wahsaga

                Danke wahsaga, Deine Lösung ist super und funktioniert prima und hat gleichzeitig mein JS wieder aufgefrischt ;)

                Besten Dank, Peete

        2. Hi,

          Fällt dir nichts auf? Du verwendest innerhalb deines Formulars zweimal einen "submit"-button. Sie haben auch noch beide denselben Namen. Korrigiere das.

          Da weder mehrere Submitbuttons noch mehrere Submitbuttons mit selbem Wert im name-Attribut einen Fehler darstellen, gibt es in dieser Hinsicht nichts zu korrigieren.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.