stigi: mehrere submit buttons -> welcher wurde gedrückt?

hallo
ich arbeite an einem formular, das vorm absenden geprüft werden soll.
aber nur, wenn einer von 3 submit buttons gedrückt wird.

<form name="sell" method="post" action="sell.php" onSubmit="return chkFormular()">
[...]
<input name="add" type="submit" id="add" value="add">
<input name="del" type="submit" id="del" value="del">
<input name="send" type="submit" id="send" value="send">
</form>

ich denke bei der lösung an etwas, dass inetwa so funktioniert:
function chkFormular() {
  if(document.sell.del.value == "del") return true;  //<--funktioniert nur nicht ;)
  // hier gehts mit der restlichen prüfung der eingaben weiter
  // [...]
}

hat jemand von euch ne idee wie ich rausbekomme, welcher submit button gedrückt wurde?

danke

  1. Hola,

    <input type="submit" name="aktion1" value="Senden">
    <input type="submit" name="aktion2" value="Senden">
    <input type="submit" name="aktion3" value="Senden">

    Dein CGI Script braucht jetzt nur noch zu prüfen, ob aktion1, aktion2, oder aktion3 gesendet wurde, dH welcher Button gedrückt wurde. Mit Javascript irgendetwas zusammenschustern ist der falsche Ansatz.

    $xNeTworKx.

    --
    Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
    1. Dein CGI Script braucht jetzt nur noch zu prüfen, ob aktion1, aktion2, oder aktion3 gesendet wurde, dH welcher Button gedrückt wurde. Mit Javascript irgendetwas zusammenschustern ist der falsche Ansatz.

      das php-script überprüft das eh nochmal. es geht mir nur darum, den user vorher via javascript auf fehleingaben hinzuweisen.
      die eingaben des forms gehen dann im nächsten schritt direkt in ne sql datenbank, deswegen !muss! ich das in php noch kontrollieren.
      ich will nur nicht, das der user wegen jeder fehleingabe neu laden muss...

    1. Hi,

      ich behaupte mal das nur ein submit button pro form erlaut ist :-((

      Warum?

      Es gibt KEINERLEI Beschränkung der Anzahl von Submit-Buttons im Formular.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  2. Hi,

    ich arbeite an einem formular, das vorm absenden geprüft werden soll.
    aber nur, wenn einer von 3 submit buttons gedrückt wird.

    Dann nutze das onclick-Ereignis dieser 3 Buttons, um dort einer globalen Variable einen Wert zuzuweisen.
    Diesen kannst Du dann im onsubmit-Handler auswerten.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  3. hallo
    ich arbeite an einem formular, das vorm absenden geprüft werden soll.
    aber nur, wenn einer von 3 submit buttons gedrückt wird.

    <form name="sell" method="post" action="sell.php" onSubmit="return chkFormular()">

    hier ist übrigens this sehr sinnvoll.
    <form name="sell" method="post" action="sell.php" onSubmit="return chkFormular(this)">

    Das spart eine ganze Menge Tipparbeit und läßt deine Funktion einfacher wiederverwenden.

    [...]
    <input name="add" type="submit" id="add" value="add">
    <input name="del" type="submit" id="del" value="del">
    <input name="send" type="submit" id="send" value="send">
    </form>

    ich denke bei der lösung an etwas, dass inetwa so funktioniert:
    function chkFormular() {
      if(document.sell.del.value == "del") return true;  //<--funktioniert nur nicht ;)

    Du kommst nicht direkt an den Button und musst dir was zusammenbasteln. Am einfachsten sowas:
    <input name="add" type="submit" id="add" value="add" pnclick="this.form.submitButton=this.value">

    und in deiner Funktion
    function chkFormular(form) {
    if(form.SubmitButton == "del") return true;

    Struppi.