Stefan Bartels: warnmeldung bei onclick nur einmal?

hallo forum!

ich möchte, daß wenn auf den formular-button geklickt wird, eine warnmeldung erscheint. allerdings nur einmal. klickt man ein zweites mal, soll die form-action ganz normal ausgelöst werden.

im formular habe ich ff. eingebaut:

<input type="submit" value="Delete" onclick="return warn_delete()">

das javascript:

function warn_delete()
   {
   var flag;
   flag=1;
   if(flag=='1'){
         alert("Warnung...");
         return true;
  flag=2;
      }
   }

mir ist klar, daß bei jedem funktionsaufruf die variabel "flag" wieder auf "1" gesetzt wird. wie kann ich es anstellen, daß sie einen anderen wert annimmt, sodaß der zweite klick normal "durchläuft"?

gruß, stefan

  1. hallo forum!

    ich möchte, daß wenn auf den formular-button geklickt wird, eine warnmeldung erscheint. allerdings nur einmal. klickt man ein zweites mal, soll die form-action ganz normal ausgelöst werden.

    im formular habe ich ff. eingebaut:

    <input type="submit" value="Delete" onclick="return warn_delete()">

    vielleicht besser im onsubmit event des Formulars.
    <form .... onsubmit="return warn_delete()">

    das javascript:

    var flag = false;

    function warn_delete()
       {

    if(!flag){

    alert("Warnung...");

    flag= true;

    return true;

    }

    return false;

    }

    Struppi.

  2. hallo forum!

    Hi Stefan!

    function warn_delete()
       {
       var flag;
       flag=1;
       if(flag=='1'){
             alert("Warnung...");
             return true;
      flag=2;
          }
       }

    Setze

    var flag=1;

    vor die Funktion

    also:

    var flag=1;
    function warn_delete(){
      if(flag=='1'){
      alert("Warnung...");
      return true;
      flag=2;
           }
        }

    Wäre eine Bestätigung denn nicht besser als eine Warnung?

    Gruß

    mdkiller

  3. hallo!

    leider geht´s noch nicht wie gewünscht ;-(

    @ mdkiller: danke, die warnmeldung erscheint zwar, aber die form--action wird trotzdem ausgelöst. nun ja, dann brauche ich keine warnung mehr...

    @ Struppi: auch dir herzlichen dank, aber bei deinem lösungsansatz wird keine meldung ausgegeben und die form-action einfach so ausgelöst.

    wäre schön, wenn mir doch noch geholfen wird.

    danke & gruß,

    stefan

    1. Hallo,

      damit ein Formular nicht ausgeführt wird musst du innerhalb der funktion

      return false;

      verbauen. Allerdings musst du dies ebenfalls in deine Entscheidung einbauen, da dies ja nur das erste mal so sein soll...

      http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onsubmit

      Odium

    2. hi,

      @ mdkiller: danke, die warnmeldung erscheint zwar, aber die form--action wird trotzdem ausgelöst. nun ja, dann brauche ich keine warnung mehr...

      hast du denn au8ch onsubmit im form-tag zum auslösen der funktion benutzt, wie dir vorgeschlagen wurde?

      gruss,
      wahsaga

    3. hallo!

      leider geht´s noch nicht wie gewünscht ;-(

      @ mdkiller: danke, die warnmeldung erscheint zwar, aber die form--action wird trotzdem ausgelöst. nun ja, dann brauche ich keine warnung mehr...

      Deshalb meinte ich ja, kein alert, sonder vielleicht eher http://selfhtml.teamone.de/javascript/objekte/window.htm#confirm

      wäre schön, wenn mir doch noch geholfen wird.

      Wäre schön, wenns hilft

      danke & gruß,

      stefan

      bitte &gruß

      mdkiller

    4. @ Struppi: auch dir herzlichen dank, aber bei deinem lösungsansatz wird keine meldung ausgegeben und die form-action einfach so ausgelöst.

      Oh ich hatte da was vertauscht, der onsubmit Handler wird ausgeführt, wenn er ein true zurückgibt und nicht bei einem false.

      Also nochmal:

      Das Formular:

      <form .... onsubmit="return warn_delete()">

      ...
      </form>

      <script type="text/javascript">

      var flag = false;

      function warn_delete()
      {

      if(!flag){
      alert("Warnung...");
      flag = true;
      return false;
      }
      return true;
      }

      Struppi.

  4. hi,

    flag=1;
       if(flag=='1'){

    btw: wenn du flag einen integer-wert zuweist, wieso fragst du dann auf einen string ab?

    gruss,
    wahsaga

  5. danke euch recht herzlich, es funktioniert nun (sogar auf zwei versch. arten).

    gruss, stefan