Hallo,
ich weiss das das schon oft gepostet wurde finde aber leider keine Lösung
Mein Code
Ich habe 5 Eingabefelder, die ich mit dem Button "Neuen Wert eingeben" clone.
Ich möchte überprüfen, dass nur Zahlen einegegeben werden können und diese werden formatiert (klappt wunderbar.)
Falls ein Buchstabe eingegeben wird, wird mit einer Fehlermeldung darauf hingewiesen, und der FOCUS sollte wieder auf das INPUT Feld gehen. Tut aber nicht.
Ich habe schon rumgelesen mit TIMEout usw. aber der Cursor sprint immer in ein falsches Feld.
Vielleicht kann mir ja jemand meinen Fehler mitteilen.
Danke im voraus.
ich weiss das das schon oft gepostet wurde finde aber leider keine Lösung
Mein Code
PHP:
<HTML>
<HEAD>
<TITLE>Werte</TITLE>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
// Zeile hinzufuegen
function clone_this(btn){
tbl=btn.parentNode.parentNode.parentNode;
tbl.insertBefore(tbl.rows[tbl.rows.length-2].cloneNode(true),tbl.rows[tbl.rows.length-1]);
}
function runde_rel_mess(x) {
var check = x.search(",");
if (check != -1)
{ x = x.replace(',','.');}
if (isNaN(x)) {
alert(x + " ist keine Zahl!");
// geht fast window.setTimeout("document.Eingabeformular.getElementsByTagName('INPUT')[0].focus()", 500);
setTimeout("x.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('INPUT')[3].focus()",500);
} else {
var n=2;
var e = Math.pow(10, n);
var x = (Math.round(x * e) / e).toString();
if (x.indexOf('.') == -1) x += '.';
x += e.toString().substring(1);
var x = x.substring(0, x.indexOf('.') + n+1);
return(x);
}
}
// Runden des eingebenen Wertes und auf Exponentialschreibweise bringen
function rel_mess(relmess) {
with (document.Eingabeformular)relmess.value = runde_rel_mess(relmess.value);
}
</SCRIPT>
<?php
echo "<FORM onSubmit='return kontrolle()' ACTION='auswert.php' METHOD='POST' NAME='Eingabeformular'>\n";
?>
<TABLE cellspacing="0" border="1">
<TR>
<TH colspan=5><span style='font-family:Verdana; font-size:14'>Messwerte</span></TH>
</TR>
<TR>
<TH><span style='font-family:Verdana; font-size:12'>1</span></TH>
<TH><span style='font-family:Verdana; font-size:12'>2</span></TH>
<TH><span style='font-family:Verdana; font-size:12'>3</span></TH>
<TH><span style='font-family:Verdana; font-size:12'>4</span></TH>
<TH><span style='font-family:Verdana; font-size:12'>5</span></TH>
</TR>
<?php
// Eingabe neuer Messwerte
echo "<DIV>";
echo "<TR>";
echo "<TD><INPUT NAME='a[]' ></TD>";
echo "<TD><INPUT NAME='b[]' ></TD>";
echo "<TD><INPUT NAME='c[]' '></TD>";
echo "<TD><INPUT NAME='relmess[]' onblur='rel_mess(this)'></TD>";
echo "<TD><INPUT NAME='e' VALUE='' DISABLED></TD>";
echo " </TR>";
echo "</DIV>";
echo " <TR>";
echo " <TH colspan=6>";
echo "<INPUT value=' Neuen Wert eingeben ' onclick='javascript:clone_this(this);' TYPE='button'/>";
echo " </TH>";
echo " </TR>";
echo "</TABLE> ";
// Beendigung der Datenbakverbindung
echo "<CENTER><BR><br><INPUT ALIGN=CENTER TYPE=SUBMIT VALUE=' Datensatz abspeichern '>\n";
echo "</FORM>\n";
//----------------------------------------------------------------------------------------------------------------------------------
?>
Ich habe 5 Eingabefelder, die ich mit dem Button "Neuen Wert eingeben" clone.
Ich möchte überprüfen, dass nur Zahlen einegegeben werden können und diese werden formatiert (klappt wunderbar.)
Falls ein Buchstabe eingegeben wird, wird mit einer Fehlermeldung darauf hingewiesen, und der FOCUS sollte wieder auf das INPUT Feld gehen. Tut aber nicht.
Ich habe schon rumgelesen mit TIMEout usw. aber der Cursor sprint immer in ein falsches Feld.
Vielleicht kann mir ja jemand meinen Fehler mitteilen.
Danke im voraus.