# Formularfeldname von Submit-Buttons auslesen



## Kahmoon (24. Juni 2010)

Servus beisammen,

ich habe ein Formular bei dem als action eine onsubmit Funktion ausgeführt wird, sobald ein User das Formular abschickt. Es gibt in diesem Formular aber mehrere Submitbuttons. Wie kann ich prüfen welcher von ihnen gedrückt wurde? Kann ich hier nicht einfach das Attribut "name" von <input type="submit" *name="knopf"* value=""  /> auslesen?

Gruß
Franky


----------



## port29 (24. Juni 2010)

Ich mag mich jetzt vielleicht irren, aber wird bei einem Submit nicht nur das Key / Value des Buttons übertragen, der betätigt wurde?


----------



## Kahmoon (24. Juni 2010)

Wäre auch OK das abzufragen. Der Value ist hier auch jedes mal anders. Aber die Abfrage muss halt dynamisch sein da es ja mehrere Submits gibt. Sprich onsubmit müsste abfragen welcher Value hier vom Submit gekommen ist.

Also etwas in der Art:

```
<input type="submit" name="Submit" value="Bestellung Senden" />
<input type="submit" name="Submit" value="Bestellung liefern" />
```


```
document.forms[0].Submit.value
```


----------



## port29 (24. Juni 2010)

Darf ich dich mal fragen, wieso du es so herum machst? ich würde aus den Submit Buttons ganz einfache Buttons machen und dann das Formular per JS submitten. Das hat den Vorteil, dass du dann deine eigene "Submit Funktion" schreiben kannst, in der die Vorvereibeitung stattfindet. Du definierst die Funktion mit einem Parameter.


```
function mySubmit(pressedButton){
...
}
```

Und bei den Buttons hast du dann so etwas in der Art:


```
<input type="button" onclick="mySubmit(1)" >
```


----------



## tombe (24. Juni 2010)

Da stimme ich port29 zu.


```
<html>
<head>

<script type="text/javascript">
function test(wert) {
var wert = wert;

    alert(document.getElementsByName("button")[wert].value);

}
</script>

</head>
<body>
<form name="formular" action="test.html" method="post" enctype="text/html">
<input type="button" name="button" value="Button 1" onClick="test(0)" />
<br />
<input type="button" name="button" value="Button 2" onClick="test(1)" />
<br />
<input type="button" name="button" value="Button 3" onClick="test(2)" />
<br />
<input type="button" name="button" value="Button 4" onClick="test(3)" />
<br />
</form>
</body>
</html>
```


----------



## Kahmoon (24. Juni 2010)

Ja OK.....das Pferd falsch rum aufgesattelt . Das Formular war halt schon so gegeben.

Danke ich versuche das.


----------



## Quaese (24. Juni 2010)

Hi,

noch eine weitere Möglichkeit, die in die gleiche Richtung wie die von port29 und tombe geht. Die JS-Funktionalität wird jedoch erst im *onload*-Event hinzugefügt. Die Trennung von Funktion und Inhalt ist somit mehr gewährleistet.

```
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.onload = function(){
  var arrSubmit = document.formTest.getElementsByTagName("input");
  for(var i=0; i<arrSubmit.length; i++){
    if(arrSubmit[i].type.toLowerCase() == "submit"){
      arrSubmit[i].onclick = function(evt){
        alert("Es wurde die Schaltfläche '"+this.name+"' mit dem Wert '" +this.value + "' gedrückt.");
      }
    }
  }
}
</script>

</head>
<body>
<form name="formTest" action="next.php" method="post">
  <input type="submit" name="btnSenden" value="Button 1"><br>
  <input type="submit" name="btnSenden" value="Button 2"><br>
  <input type="submit" name="btnSenden" value="Button 3"><br>
  <input type="submit" name="btnSenden" value="Button 4">
</form>
</body>
</html>
```
 
Ciao
Quaese


----------

