Formularüberprüfung Feldname als Variable übergeben
Ralf
- javascript
Hallo,
ich möchte mit einer Javascriptfunktion in einem Shopsystem eine dynamische Anzahl von Textfeldern (mit einer PHP Schleife ausgegeben) auf Eingabe von Daten überprüfen:
PHP Skript zur Ausgabe des HTML:
-------------------------------------------
<?PHP
echo "<form name='einkaufen'>\n";
for($i=1;$i<=6;$i++) // hier werden z.b. 6 Eingabefelder ausgegeben
{
echo "<input type='text' size='2' maxlength='2' name='wert$i' onBlur="return checkeingabe(wert$i)">\n";
}
echo "</form>\n";
?>
-------------------------------------------
function checkeingabe(wert)
{
if(document.einkaufen.wert.value<=0)
{
alert("Bitte nur positive Zahlen eingeben");
return false;
}
return true;
}
Leider wird der Name der Textfelder "wert$i" in der JS Funktion nicht übernommen und es kommt zu Scriptfehlern, obwohl der Browser im Quelltext wirklich die Namen für die Textfelder (wert1,wert2,wert3,...) bekommt und sie auch korrekt in den onBlur Handler schreibt.
Kann mir jemand auf die Sprünge helfen ?
Vielen Dank im Voraus. Wünsche allen ein frohes Fest.
Ralf
Hello,
wie sieht denn der resultierende HTML-Code aus?
Bitte nur beispielhaft, ohne Farben, Fonts und Schickimicki...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom,
der Browser gibt die INPUT Felder so aus:
<input type='text' size='4' name='wert1' value='' onBlur="return checkbuchung(wert1)">
<input type='text' size='4' name='wert2' value='' onBlur="return checkbuchung(wert2)">
<input type='text' size='4' name='wert3' value='' onBlur="return checkbuchung(wert3)">
<input type='text' size='4' name='wert4' value='' onBlur="return checkbuchung(wert4)">
<input type='text' size='4' name='wert5' value='' onBlur="return checkbuchung(wert5)">
<input type='text' size='4' name='wert6' value='' onBlur="return checkbuchung(wert6)">
Wenn ich jedes einzelne Feld mit Javascript überprüfe funktioniert auch die Überprüfung. Aber es wäre natürlich die wesentlich bessere Lösung, wenn das mit einer JS Funktion funktioniert, welcher der Wert des Feldes wert$i übergeben wird.
Hello,
wie sieht denn der resultierende HTML-Code aus?
Bitte nur beispielhaft, ohne Farben, Fonts und Schickimicki...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
onBlur="return checkbuchung(wert1)">
^^^^^^
Du willst einen String uebergeben, also 'wert1'
Gruesse, Joachim
Danke, das war's.
Gruesse und frohes Fest
Ralf
Hi,
onBlur="return checkbuchung(wert1)">
^^^^^^
Du willst einen String uebergeben, also 'wert1'Gruesse, Joachim
Hello,
<input type='text' size='4' name='wert1' value='' onBlur="return checkbuchung(wert1)">
Einen Tipp hast Du ja schon.
Wie wäre es sonst mit
<input type='text' size='4' name='wert[1]' value='' onBlur="return checkbuchung(this.value)">
?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Привет ,
ich möchte mit einer Javascriptfunktion in einem Shopsystem eine dynamische Anzahl von Textfeldern (mit einer PHP Schleife ausgegeben) auf Eingabe von Daten überprüfen:
Wenn du schon PHP zur Ausgabe der Felder benutzt, könntest du sie auch mit PHP prüfen. Dann ist nämlich sichergestellt, dass die Felder überprüft werden, wenn einer deiner Besucher Javascript ausgeschaltet hat.
<?PHP
echo "<form name='einkaufen'>\n";
for($i=1;$i<=6;$i++) // hier werden z.b. 6 Eingabefelder ausgegeben
{
echo "<input type='text' size='2' maxlength='2' name='wert$i' onBlur="return checkeingabe(wert$i)">\n";
}
echo "</form>\n";
?>
Attribute werden in HTML _immer_ mit doppelten Anführungszeichen umschlossen, die in PHP-Strings mit einem umgekehrten Schrägstrich maskiert werden. Also:
<?php
echo "<form name="einkaufen">\n";
usw.
function checkeingabe(wert)
{
if(document.einkaufen.wert.value<=0)
{
alert("Bitte nur positive Zahlen eingeben");
return false;
}
return true;
}
Probiere es mal so:
function checkeingabe(wert)
{
if(document.einkaufen[wert].value<=0)
usw.
До свидания!
Sven aus Bonn
Hi,
Attribute werden in HTML _immer_ mit doppelten Anführungszeichen umschlossen,
Unsinn. HTML (und XHTML) erlauben ausdrücklich auch die Verwendung einfacher Anführungszeichen.
http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2:
By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39).
cu,
Andreas
Привет ,
HTML (und XHTML) erlauben ausdrücklich auch die Verwendung einfacher Anführungszeichen.
Ok, wieder was gelernt.
Hatte das nur anders geschrieben, weil ich's so noch nie irgendwo gesehen oder gelesen hatte.
До свидания!
Sven aus Bonn