-
Hallo, kann mir jemand sagen wie ich ein JS Funktion über alle textfelder laufen kann ohne das ich den Name des Textfeldes kenne?
Natürlich muss dies vor dem absenden des Formulares geschehen und wichtig ist;
Gibt ein Textfeld "false" zurück, so bleibt man auf der selben Seite und das Formular wurde nciht gesendet.Gibt es "true" zurück so wird das Formular gesendet.
Denn ich habe folgenden Javscript Code jedoch werden meine Textfelder mit PHP automatisch generiert und somit bekommen sie irgend einen generierten Namen.
HTML-Code:<script language="javascript"> function feldleer(feld) { if(document.getElementById(feld).value != "" && document.getElementById("G"feld).value == "") { alert("Bitte alle Felder ausfüllen"); return false; } else if(document.getElementById(feld).value == "" && document.getElementById(feld).value != "") { alert("Bitte alle Felder ausfüllen"); return false; } else { alert("OK"); return true; } } function ists_zahl(wort) { ist_zahl=true; if(wort.length>=1 && wort.length<=4) { for(n=0;n<wort.length;n++) { if(wort.charAt(n)>"6") { alert("Nur Zahlen von 1-6 sind möglich"); //ist_zahl=false; return false; } } } else { alert("min 1 Zeichen oder max. 4 Zeichen müssen vorhanden sein"); //ist_zahl=false; return false; } if("G"wort.length>=1 && "G"wort.length<=4) { for(n=0;n<"G"wort.length;n++) { if("G"wort.charAt(n)>"6") { alert("Nur Zahlen von 1-6 sind möglich"); //ist_zahl=false; return false; } } } else { alert("min 1 Zeichen oder max. 4 Zeichen müssen vorhanden sein"); //ist_zahl=false; return false; } } function ueberpruefen(formular,feld) { if (feldleer(formular.feld) == true && feldleer(formular."G"feld) == true) { wert1 = ists_zahl(formular.feld.value); wert2 = ists_zahl(formular."G"feld.value); if(wert1 == false || wert2 == false) { return false; } } else { alert ("Bitte alle Felder ausfüllen"); return false; } return true; } </script>
Geändert von smyle (21.04.10 um 14:04 Uhr)
-
21.04.10 14:00 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Also wenn du sowieso mit PHP arbeitest, warum machst du dann die Prüfung nicht auch damit Wenn ich Java abgeschaltet hätte würde dein Formular gar nicht funktionieren oder zumindest wird es dann nicht geprüft.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Hi,
mit Hilfe der elements-Kollektion kannst du auf alle Formularfelder zugreifen. Feststellen, ob es sich um ein Textfeld handelt, kannst du, indem du prüfst, ob die type-Eigenschaft den Wert text enthält.
Beispiel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<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"> <!-- function checkIt(objForm){ var arrElem = objForm.elements; for(var i=0; i<arrElem.length; i++){ if((arrElem[i].type == "text") && (arrElem[i].value == "")) return false; } return true; } //--> </script> </head> <body> <form action="auswertung.php" onsubmit="return checkIt(this);"> <input type="text" name="txt_1" value="1"> <input type="text" name="txt_2" value="2"> <input type="text" name="txt_3" value="3"> <input type="text" name="txt_4" value=""> <input type="submit" value="senden"> </form> </body> </html>
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
PHP ist Serverseitig, das heisst wenn ich etwas mit PHP überprüfen würde und ich dann auf den submit button klicke, würde "form action="*"" aktiviert werden und somit wären alle meine Eingaben verlohren.Also wenn du sowieso mit PHP arbeitest, warum machst du dann die Prüfung nicht auch damit
Quaese, wie muss ich in diesem Fall meinen Code umändern, denn ich habe einen vergleich in der Fuktion felderleer(feld) :S?
Geht das überhaupt?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
function feldleer(feld) { if(document.getElementById(feld).value != "" && document.getElementById("G"feld).value == "") { alert("Bitte alle Felder ausfüllen"); return false; } else if(document.getElementById(feld).value == "" && document.getElementById(feld).value != "") { alert("Bitte alle Felder ausfüllen"); return false; } else { alert("OK"); return true; } } function ists_zahl(wort) { ist_zahl=true; if(wort.length>=1 && wort.length<=4) { for(n=0;n<wort.length;n++) { if(wort.charAt(n)>"6") { alert("Nur Zahlen von 1-6 sind möglich"); //ist_zahl=false; return false; } } } else { alert("min 1 Zeichen oder max. 4 Zeichen müssen vorhanden sein"); //ist_zahl=false; return false; } if("G"wort.length>=1 && "G"wort.length<=4) { for(n=0;n<"G"wort.length;n++) { if("G"wort.charAt(n)>"6") { alert("Nur Zahlen von 1-6 sind möglich"); //ist_zahl=false; return false; } } } else { alert("min 1 Zeichen oder max. 4 Zeichen müssen vorhanden sein"); //ist_zahl=false; return false; } } function ueberpruefen(formular,feld) { if (feldleer(formular.feld) == true && feldleer(formular."G"feld) == true) { wert1 = ists_zahl(formular.feld.value); wert2 = ists_zahl(formular."G"feld.value); if(wert1 == false || wert2 == false) { return false; } } else { alert ("Bitte alle Felder ausfüllen"); return false; } return true; }
-
21.04.10 14:27 #5
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Warum sollen die Eingaben verloren sein? Jeder der ein Formular hat und dieses dann logischerweise auch abschickt verarbeitet die Eingaben doch dann auch weiter. Es kommt nur darauf an wie du mit den GET/POST-Variablen umgehst.PHP ist Serverseitig, das heisst wenn ich etwas mit PHP überprüfen würde und ich dann auf den submit button klicke, würde "form action="*"" aktiviert werden und somit wären alle meine Eingaben verlohren.
Ach so: wie schon geschrieben Java kann ich abschalten die Prüfung via PHP nichtSollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
21.04.10 14:34 #6Maik Tutorials.de Gastzugang
Java und Javascript haben soviel gemeinsam, wie Eishockey und Feldhockey

mfg Maik
-
Ja schon, aber der Benutzer kann dann seine Eingaben, vor dem abspeichern in der DB nicht mehr ändern. oder doch?
wie würdest denn du das machen? Ich verstehe nicht was du genau meinst.
Nicht zu vergessen, ich habe im form eine action="*" beim wählen des subits wird man auf einem anderen link weitergeleitet und die Eingaben werden in der DB übernommen.
Stimmt
hihi
-
21.04.10 15:04 #8
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
@Maik: Schon klar aber Java ist einfacher zu schreiben als Javascript

Wenn du mit GET arbeitest, kannst du auch wenn du auf eine andere Seite umleitest schreiben:
Auf der "Formularseite" gibst du bei den entsprechenden Feldern an:PHP-Code:$fehler = 0;
IF(!isset($_GET["feld1"]) OR trim($_GET["feld1"]) == "") {
$fehler = 1;
}
IF(!isset($_GET["feld2"]) OR trim($_GET["feld2"]) == "") {
$fehler = 1;
}
IF ($fehler == 1) {
echo "Es sind nicht alle Felder ausgefüllt";
echo "<a href='formular.php?feld1=" .@$_GET["feld1"] ."&feld2=" .@$_GET["feld2"]>Fehler beheben</a>";
}
Dann werden die vorhandenen Werte gleich wieder eingetragen.PHP-Code:<input type="text" name="feld1" value="<?php echo @$_GET['feld1']; ?>">
<input type="text" name="feld2" value="<?php echo @$_GET['feld2']; ?>">
Du kannst die Prüfung aber auch gleich auf der "Formularseite" machen. Einfach wie oben bei den Feldern die Variable $fehler auf 1 setzten wenn was nicht stimmt und wieder durch IF den entsprechenden Codeblock ausführen.
NACHTRAG: Das hier könnten dir auch helfen.
http://www.tutorials.de/forum/php-tu...erausgabe.html
http://www.tutorials.de/forum/php-tu...-springen.htmlGeändert von tombe (21.04.10 um 16:03 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Hi,
du könntest die Funktion checkIt in ... aufrufen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
function ueberpruefen(formular,feld) { if ([B]checkIt(formular)[/B]) { wert1 = ists_zahl(formular.feld.value); wert2 = ists_zahl(formular."G"feld.value); if(wert1 == false || wert2 == false) { return false; } } else { alert ("Bitte alle Felder ausfüllen"); return false; } return true; }
Damit überprüfst du, ob alle Textfelder Inhalte besitzen.
Im Übrigen zweifel ich daran, dass
korrekt ist.Code :1
formular."G"feld
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
hmm .. das wird warscheinlich nicht gehen, wegen den textfeldernamen. und ausserdüm müssen nicht alle felder ausgefüllt sein :S
Das mit dem PHP würd ev funktionierten aber da ich sehr viele Daten habe die man eintragen kann oder aus der DB ausgelesen wurden, wäre es besser wenn ich diese Variante vermeide..
Ach mann... das wir sehr schwer werden.
Kann ich den die JS funktionen auch direkt in den einzelnen feldern aufrufen?
und somit sagen, das beim klick von submit button dies überprüfen soll?
-
21.04.10 17:19 #11Maik Tutorials.de Gastzugang
-
Hi,
Hast du die Möglichkeiten, den Feldern ein Attribut mit zu geben?
In diesem Fall könntest du das Attribut alt zum Beispiel setzen und ihm den Wert must zuweisen. In der Funktion wird zusätzlich auf diesen Wert geprüft.
Beispiel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
<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"> <!-- function checkIt(objForm){ var arrElem = objForm.elements; for(var i=0; i<arrElem.length; i++){ if((arrElem[i].type == "text") [B]&& (arrElem[i].alt == "must") [/B]&& (arrElem[i].value == "")) return false; } return true; } //--> </script> </head> <body> <form action="get_formdata_test.php" onsubmit="return checkIt(this);"> <input type="text" name="txt_1" value="1" [B]alt="must"[/B]> <input type="text" name="txt_2" value=""> <input type="text" name="txt_3" value="3" [B]alt="must"[/B]> <input type="text" name="txt_4" value="" [B]alt="must"[/B]> <input type="submit" value="senden"> </form> </body> </html>
Im Übrigen würde ich auf eine zusätzliche Prüfung auf der Serverseite nicht verzichten. Die clientseitige Überprüfung mit JS sollte lediglich ein zusätzliches Feature sein.
Ciao
QiaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Hallo
Ich möchte die checjIt Funktion wieder verwenden jedoch ein bisschen anders.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13
function checkIt(objForm) { alert(objForm); var arrElem = objForm.elements; for(var i=0; i<arrElem.length; i++) { if((arrElem[i].type == "text") && (arrElem[i].alt == "must") && (arrElem[i].value != "")) { //document.getElementsByName(arrElem)[i].style.disabled = false; document.arrElem.style.disabled=false; } } }
Wenn ein bestimmter Button gewählt ist, sollen alle Textfelder aus eine bestimmten Formular und alle Selectboxen von desabled auf enabled stellen (Button ist im selben Formular wie die Textfelder und Selectboxen).HTML-Code:<html> ..... <form method='post' action='insert.php?box=$id' onsubmit='return checkItdez(this);' name='formular'> ... <?php echo"<input type='text' $desabled size='5' maxlength='5' width='30' value='$note' name='$KID$na' class='decimal maximum6' style='visibility:visible' alt='must'/>"; ?> .... <input name="Bearbeiten" type="button" onClick="javascript:showbutton(); checkIt(formular);" value="Bearbeiten" style="text-align:center;color: rgb(255, 102, 0); font-size: 10pt;"/> .... </form> ... </html>
Alle Felder sind standard auf desabled.
Mein Code funktioniert nicht ganz. Kann mir jemand sagen warum? was genau falsch ist?Geändert von smyle (16.07.10 um 10:21 Uhr)
-
Hi,
du kannst der Funktion die Referenz auf den Button übergeben. Dort kannst du prüfen, ob der Wert des Button mit dem gewünschten übereinstimmt. Im Misserfolgsfall verlässt du die Funktion wieder.
Anschliessend kannst du dich anhand der übergebenen Referenz zum Formular-Objekt hangeln. Von dort aus erstellst du wie gehabt das elements-Array, durchläufst dieses und setzt wie gewünscht die Eigenschaft disabled.
Beispiel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
<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"> <!-- function checkIt(objBtn){ // Falls nicht der richtige Button gedrückt wurde -> Funktion verlassen if(objBtn.value != "Bearbeiten") return false; var arrElem = objBtn.form.elements; for(var i=0; i<arrElem.length; i++){ if((arrElem[i].type == "text") && (arrElem[i].alt == "must") && (arrElem[i].value != "")){ arrElem[i].disabled = false; } } } //--> </script> </head> <body> <form method='post' action='insert.php?box=$id' onsubmit='return false;' name='formular'> <input type='text' disabled="disabled" size='5' maxlength='5' width='30' value='123' name='txtFeld' class='decimal maximum6' style='visibility:visible' alt='must'> <input name="Bearbeiten" type="button" onClick="javascript:/*showbutton();*/ checkIt(this);" value="Bearbeiten" style="text-align:center;color: rgb(255, 102, 0); font-size: 10pt;"/> </form> </body> </html>
Im Übrigen wäre es sehr angenehm, wenn du demnächst den geparsten HTML-Code bereitstellen würdest. Es ist für den Hilfeleistenden aufwendig, erst den PHP-Code in ein verarbeitbares Format überführen zu müssen. Für dich sind es nur ein paar Klicks.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
OK. Das funktioniert. Bis auf die Selectboxen. Diese werden ohne icht enabled:
Hier der Code, ohne php
HTML-Code:<form method='post' action='insert.php?box=1' onsubmit='return checkItdez(this);' name='formular'> <select name='S239' id='S239' style='width:56px;' width='30' disabled='disabled' title='must'> <option selected='selected' value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> </select> <input name="Bearbeiten" type="button" onClick="javascript:showbutton(); checkIt(this);" value="Bearbeiten" style="text-align:center;color: rgb(255, 102, 0); font-size: 10pt;"/> <form>
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12
function checkIt(objBtn){ // Falls nicht der richtige Button gedrückt wurde -> Funktion verlassen if(objBtn.value != "Bearbeiten") return false; var arrElem = objBtn.form.elements; for(var i=0; i<arrElem.length; i++){ if((arrElem[i].type == "text" || arrElem[i].type == "select") && (arrElem[i].alt == "must" || arrElem[i].title=="must") && (arrElem[i].value != "")){ arrElem[i].disabled = false; } } }
Ist meine überprüfung mit arrElem[i].type == "select" falsch.
Übrigens da man einer selectbox kein "alt" Attribut übergeben kann, habe ich dort title angegeben. Daher das arrElem[i].title=="must" .
Ähnliche Themen
-
fscommand menu=false: Funktion bei allen Playern ?
Von molotroc im Forum Flash PlattformAntworten: 1Letzter Beitrag: 15.04.05, 10:59 -
Zwei ID Felder in der DB die sie automatisch hochzählen
Von medico im Forum PHPAntworten: 1Letzter Beitrag: 16.02.05, 14:48 -
Form-Felder automatisch auswählen
Von uwee im Forum PHPAntworten: 3Letzter Beitrag: 01.02.05, 15:01 -
Input-Felder automatisch wechseln
Von Ruediger im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 09.03.04, 20:07 -
Felder automatisch füllen
Von CitGod im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 25.08.02, 10:40



1Danke

Zitieren




Login





