Fabian: Eingabe-Taste

Hallo,
Mein problem ist, dass ich im moment es so habe, dass eine Javascript Funktion ausgelößt wird wenn ich auf einen Button drücke. Ich möchte haben, dass die auch passiert, wenn man die Eingabe-Taste drückt.

Ich zeige jetzt meinen ganzen script da ich nicht wo der Fehler sein könnte. Ich hab auch schon gegoogelt und mit scripts verglichen, die gehen, aber ich find einfach nicht den Fehler.
Der script kommt erscheint hier in der vorschau nicht richtig formatiert. Deswegen guckt doch bitte dort: Hier

  
<html>  
	<head>  
		<title>Median und mehr</title>  
		<script type="text/javascript">  
		
~~~~~~javascript
  
						function los() {  
				  
				var anzahl = 15;  
				var textboxen = new Array(anzahl + 1);  
				var leer = 0;  
				var TbAn = 0;  
				var tmp;  
				var ArMittel = 0;  
				var ArMittelHilfe = 0;  
				var difference;  
				var uq, m, oq, s;  
				  
				//werte in felder an array textboxen übergeben  
				for (i = 1; i <= anzahl; i++) {  
					textboxen[i] = parseFloat(document.getElementsByName("t" + i) [0].value)  
				}  
				  
				//wenn keine Zahl dann null  
				for (i = 1; i <=anzahl; i++) {  
					if ( isNaN(textboxen[i])) {textboxen[i] = 0}  
				}  
				  
				//leere Textboxen zählen  
				for (l = 1; l <= anzahl; l++) {  
					if (textboxen[l] == "") {leer++};  
				}  
				  
				for (w = 1; w <= leer; w++) {  
					for (i = 1; i <= anzahl - 1; i++) {  
							if (textboxen[i] == "") {textboxen[i] = textboxen[i + 1]; textboxen[i + 1] = "";};  
					};  
				};  
				  
  
				for (i = 1, ende = false; ende == false && i <= anzahl ; i++) {  
					if (textboxen[i] != "") {  
						TbAn = i;  
					} else {  
						ende = true;  
					};  
				};  
				  
				  
				for (i = 1; i <= TbAn - 1; i++) {  
					for (j = i + 1; j <= TbAn ; j++) {  
						if (textboxen[i] > textboxen[j]) {  
							tmp = textboxen[i];  
							textboxen[i] = textboxen[j];  
							textboxen[j] = tmp;  
						}  
					}  
				}  
				  
				  
			  
			  
				  
					  
				//gerundet fehlt noch  
				for (arm = 1; arm <= anzahl; arm++){  
							ArMittelHilfe = parseFloat(ArMittelHilfe) + textboxen[arm]  
							ArMittel = ArMittelHilfe / TbAn  
				}  
			  
			  
			  
			  
                if ( TbAn % 4 == 0 ) {  
					uq = (textboxen[TbAn / 4 ] + textboxen[TbAn / 4 + 1]) / 2  
					m = (textboxen[TbAn / 2 + 1] + textboxen[TbAn / 2]) / 2  
					oq =  (textboxen[(TbAn / 4) * 3] + textboxen[(TbAn / 4) * 3 + 1]) / 2  
                }  
				if ( TbAn % 4 == 1 ) {  
                    uq = (textboxen[(TbAn / 2) + (1 / 2) - ((TbAn - 1) / 4)] + textboxen[((TbAn / 2) + (1 / 2) - ((TbAn - 1) / 4)) - 1]) / 2  
                    m = textboxen[(TbAn / 2) + (1 / 2)]  
                    oq = (textboxen[(TbAn / 2) + (1 / 2) + (TbAn - 1) / 4] + textboxen[(TbAn / 2 + (1 / 2) + (TbAn - 1) / 4) + 1]) / 2  
                }  
                if ( TbAn % 4 == 2 ) {  
                    uq = textboxen[(TbAn / 4) + (1 / 2)]  
                    m = (textboxen[(TbAn / 2) + 1] + textboxen[TbAn / 2]) / 2  
                    oq = textboxen[(TbAn / 4) * 3 + (1 / 2)]  
                }  
                if ( TbAn % 4 == 3 ) {  
					uq = textboxen[(TbAn + 1) / 4]  
                    m = textboxen[(TbAn + 1) / 2]  
                    oq = textboxen[((TbAn + 1) / 4) * 3]  
                }  
  
			  
			  
				for (i = 1; i <= anzahl; i++) {  
					if (textboxen[i] == "0" & i > TbAn) { textboxen[i] = ""}  
				}  
				  
				  
				  
				if (isNaN(uq)) { document.getElementsByName("uq") [0].innerHTML = "Fehler"} else {document.getElementsByName("uq") [0].innerHTML = uq;}  
				if (isNaN(m))  { document.getElementsByName("m") [0].innerHTML = "Fehler"} else {document.getElementsByName("m") [0].innerHTML = m;}  
				if (isNaN(oq)) { document.getElementsByName("oq") [0].innerHTML = "Fehler"} else  {document.getElementsByName("oq") [0].innerHTML = oq;}  
				if (isNaN(ArMittel)) { document.getElementsByName("a") [0].innerHTML = "Fehler"} else {document.getElementsByName("a") [0].innerHTML = ArMittel;}  
				  
				difference = oq - uq  
				if (isNaN(difference)) { document.getElementsByName("qa") [0].innerHTML = "Fehler"} else  {document.getElementsByName("qa") [0].innerHTML = difference;}  
				  
				if (isNaN(TbAn)) { document.getElementsByName("an") [0].innerHTML = "Fehler"} else {document.getElementsByName("an") [0].innerHTML = TbAn;}  
				  
				s = textboxen[TbAn] - textboxen[1];  
				if (isNaN(s)) {document.getElementsByName("s") [0].innerHTML = "Fehler"} else {document.getElementsByName("s") [0].innerHTML = s;}  
			  
			  
			  
			  
				  
			  
				for (i = 1; i <= anzahl; i++) {  
					document.getElementsByName("t" + i) [0].value = textboxen[i];	  
				}  
				  
			}  
		
	~~~html

	</script>  
</head>  
<body>  
	<p><h1><center>"Median und mehr" berechen</center></h1></p>  
	<center>  
		<form name="form" action="javascript:los()">  
			<p>  
			<table border="0" >  
				<tr>  
					<td><input name="t1" type="text" size="20" maxlength="20" tabindex=1></td>  
					<td><input name="t6" type="text" size="20" maxlength="20" tabindex=6></td>  
					<td><input name="t11" type="text" size="20" maxlength="20" tabindex=11></td>  
				</tr>  
				<tr>  
					<td><input name="t2" type="text" size="20" maxlength="20" tabindex=2></td>  
					<td><input name="t7" type="text" size="20" maxlength="20" tabindex=7></td>  
					<td><input name="t12" type="text" size="20" maxlength="20" tabindex=12></td>  
				</tr>  
				<tr>  
					<td><input name="t3" type="text" size="20" maxlength="20" tabindex=3></td>  
					<td><input name="t8" type="text" size="20" maxlength="20" tabindex=8></td>  
					<td><input name="t13" type="text" size="20" maxlength="20" tabindex=13></td>  
				</tr>  
				<tr>  
					<td><input name="t4" type="text" size="20" maxlength="20" tabindex=4></td>  
				 	<td><input name="t9" type="text" size="20" maxlength="20" tabindex=9></td>  
					<td><input name="t14" type="text" size="20" maxlength="20" tabindex=14></td>  
				</tr>  
				<tr>  
					<td><input name="t5" type="text" size="20" maxlength="20" tabindex=5></td>  
				 	<td><input name="t10" type="text" size="20" maxlength="20" tabindex=10></td>  
					<td><input name="t15" type="text" size="20" maxlength="20" tabindex=15></td>  
				</tr>  
				<tr>  
					<td></td>  
					<td><center><input type="button" value="LOS!" onClick="los()"></center></td>  
					<td></td>  
				</tr>  
			</table>  
			</p>  
	  
	  
	  
			<table border="1"; style="border-color:green; border-width: 3px" >  
				<colgroup height="100" width="180" span="7"></colgroup>  
						<tr style="background-Color:#ff0000; font-size:120%">  
							<td>Unteres Quartil</td>  
							<td>Median</td>  
							<td>Oberes Quartil</td>  
							<td>Quartil-Abstand</td>  
							<td>Arithmetisches Mittel</td>  
							<td>Spannweite</td>  
							<td>Anzahl</td>  
						</tr>  
						  
						<tr style="color:blue; font-size:140%">  
							<td height="40"><label name="uq"></label></td>  
							<td><label name="m"></label></td>  
							<td><label name="oq"></label></td>  
							<td><label name="qa"></label></td>  
							<td><label name="a"></label></td>  
							<td><label name="s"></label></td>  
							<td><label name="an"></label></td>  
						</tr>  
			</table>  
		</form>  
	</center>			  
</body>  

</html>

  1. Nachtrag:

    Ich Versuche es mit der Zeile (Z.132) <form name="form" action="javascript:los()">
    So wird es auch im Internet beschrieben.

    1. Ich Versuche es mit der Zeile (Z.132) <form name="form" action="javascript:los()">
      So wird es auch im Internet beschrieben.

      Dein Internet ist kaputt.

      1. ich hab schon immer gewusst, dass es net meine Schuld ist :D

  2. Mein problem ist, dass ich im moment es so habe, dass eine Javascript-Funktion ausgelöst wird, wenn ich auf einen Button drücke. Ich möchte haben, dass die auch passiert, wenn man die Eingabe-Taste drückt.

    Ich Versuche es mit der Zeile (Z.132) <form name="form" action="javascript:los()">
    So wird es auch im Internet beschrieben.

    Das Internet, das dir Dinge wie <center> beibringt, solltest du in die Tonne treten ;>

    Aber zu deiner Frage: Ein Formular setzt sich seit jeher in Bewegung, wenn ein Element à la <http://de.selfhtml.org/html/formulare/formularbuttons.htm@title=<input type="submit" value="Blafasel machen">> betätigt wird. Und wenn's vorhanden ist, reagiert das Formular auch auf die Eingabetaste.

    Allerdings wird das Formular dann üblicherweise irgendwohin geschickt. Da du jedoch direkt verarbeiten möchtest, musst du die Standardaktion mit einem "return false;" an richtiger Stelle abbrechen. Wo genau, verrät dir bestimmt das Internet :)

    1. Aber zu deiner Frage: Ein Formular setzt sich seit jeher in Bewegung, wenn ein Element à la <http://de.selfhtml.org/html/formulare/formularbuttons.htm@title=<input type="submit" value="Blafasel machen">> betätigt wird. Und wenn's vorhanden ist, reagiert das Formular auch auf die Eingabetaste.

      Formulare reagieren auch ohne input[type=submit] auf die Enter-Taste - wenn eins vorhanden ist, ist der Button auch egal.

      Wenn das Formular per Enter abgeschickt wird, wird auch nicht der Wert des input-Elements übertragen sondern eben nichts.

      Allerdings wird das Formular dann üblicherweise irgendwohin geschickt. Da du jedoch direkt verarbeiten möchtest, musst du die Standardaktion mit einem "return false;" an richtiger Stelle abbrechen. Wo genau, verrät dir bestimmt das Internet :)

      Die Standardaktion (das Abschicken nach "irgendwohin") wird über das submit-Event gesteuert, dieses gilt es abzufangen - ob dabei ein Button, input[type=submit] oder die Enter-Taste gedrückt wird, ist dabei egal.

    2. Aber zu deiner Frage: Ein Formular setzt sich seit jeher in Bewegung, wenn ein Element à la <http://de.selfhtml.org/html/formulare/formularbuttons.htm@title=<input type="submit" value="Blafasel machen">> betätigt wird. Und wenn's vorhanden ist, reagiert das Formular auch auf die Eingabetaste.

      und mit type="button" gehts net, warum??? Danke jedenfalls, funktioniert wenn ich type="submit" mach und wenn in der form steht action="javascript:los()"