Hi,
mich bedrückt da nen Problem ...
ja, deine Grammatik ist kaputt. Es heißt "ein Problem", nicht "einen Problem". Die Verwendung umgangssprachlicher Kurzformen ändert daran nichts.
<input type="submit" onclick="javascript:c=confirm('Formular absenden?'); if (c==false) return false;" />
Da sind mehrere Portionen Unsinn drin.
Die erste ist schon das Label "javascript:". Was willst du damit erreichen? Nein, es ergibt absolut keinen Sinn und ist völlig zweckfrei.
Dann die umständliche Formulierung:
c=confirm('Formular absenden?'); if (c==false) return false;
Das if (c==false)
will in Wirklichkeit nur if (!c)
heißen. Aber davon abgesehen ist die Einführung einer zusätzlichen Variablen hier überhaupt nicht notwendig. Warum nicht kürzer und damit übersichtlicher:
return (confirm('Formular absenden?'));
Klickte man auf Abbrechen passierte nichts, bei Klick auf OK wurde das Formular gesendet.
Genau das passiert auch bei der bereinigten Fassung, die ich oben erwähnt habe.
Analog dazu ging das ganze mit Links (ebenfalls wieder nicht mein Originallink):
<a href="datei.php" onclick="javascript:c=confirm('Eintrag löschen?'); if (c==false) return false;">Löschen?</a>
Hier gilt genau dasselbe. In allen erwähnten Punkten.
> Das einzige was funktioniert ist, wenn eine solche Abfrage im onload-Parameter von <body> ist:
> `<body onload="javascript:c=confirm('Seite wechseln?'); if (c==true) window.location.href = 'datei.php'; else return false;"> `{:.language-HTML}
Auch hier gilt wieder: `if (c==true)`{:.language-javascript} ist äquivalent zu `if (c)`{:.language-javascript}. Und ein return ergibt im onload-Handler keinen Sinn. Welche Standardaktion möchtest du damit unterdrücken?
> Weiß jemand ne Lösung bzw. Alternativcode mit dem das ganze funktioniert hierfür?
Nein, weil du bisher noch gar keine Problembeschreibung geliefert hast, an der man ansetzen könnte.
> Ich hab nämlich keine große Lust alle Sicherheitsabfragen die ich so erstellt habe in PHP-Code umzusetzen.
Aha. Lieber in Javascript, so dass sie bei Besuchern mit deaktiviertem JS überhaupt nicht ausgeführt werden.
So long,
Martin
--
Wer schläft, sündigt nicht.
Wer vorher sündigt, schläft besser.