Formular | Checkbox aktivieren beim benutzen des Textfeldes
Grizzly
- javascript
0 Cheatah0 Gunnar Bittersmann0 Grizzly0 gast42
Hey Leute,
Ich suche schon eine ganze weile nach die Möglichkeit die Checkbox anzukreuzen wenn man in das Texfeld klickt bzw. etwas reinschreibt.
Das Formular habe ich mit Hilfe einer for-schleife aus PHP erzeugt, deswegen auch diese <?PHP echo $file_array[$i] ?> code fragmente.
Ich bekomm das leider nicht hin kenne mich so garnicht mit javascript aus.
function textChecking(index)
{
checkbox = "<?PHP echo $file_array[index] ?>_check";
if(document.getElementByClass("textfeld") =! "")
{
alert "Drin im if";
document.getElementById("checkbox").checked = true;
}
}
<form name="order" action="script_mehr.php" method="post" onsubmit="return checkForm();">.......
...<input onclick="check();" id="<?PHP echo $file_array[$i] ?>_check" type="checkbox" name="brot[]" value="<?PHP echo $file_array[$i] ?>" />
<input onclick="textChecking(<?PHP $i ?>);" class="textfeld" name="<?PHP echo $file_var[$i] ?>_butter" type="text" size="3" maxlength="3" />......
....</form>
Ich hoffe einer von euch kann mir da weiterhelfen.
Danke im Voraus!
Mfg Grizzly
Hi,
Ich suche schon eine ganze weile nach die Möglichkeit die Checkbox anzukreuzen wenn man in das Texfeld klickt bzw. etwas reinschreibt.
was hast Du ge- und versucht, woran ist es gescheitert?
Das Formular habe ich mit Hilfe einer for-schleife aus PHP erzeugt, deswegen auch diese <?PHP echo $file_array[$i] ?> code fragmente.
Aus welchem Grund glaubst Du, PHP-Code habe irgend etwas mit Deinem Problem zu tun, sei in irgend einer Form für ein clientseitiges Problem nützlich und habe nicht den Effekt, eine Problembehandlung bis hin zur Unmöglichkeit zu erschweren?
Ich bekomm das leider nicht hin kenne mich so garnicht mit javascript aus.
Dazu benötigst Du uns zunächst nicht. Bei SELFHTML gibt es ein Kapitel zu dem Thema, welches Dir die Grundlagen erklärt.
Ich hoffe einer von euch kann mir da weiterhelfen.
Leider nicht. Du hast kein Problem beschrieben, statt dessen jedoch nutzlosen (weil nicht von serverseitigem Code befreiten) Code gepostet.
Cheatah
Danke für den hinweis Cheatah,
<script language="javascript" type="text/javascript">
function check()
{
document.getElementById(checkbox).checked = true;
}
</script>
<form name="order" action="" method="post">
<input id="checkbox" name="text[]" type="checkbox" value="textKlicken" />
<input class="textfeld" name="textfeld1" type="text" size="3" maxlength="3" onclick="check();" />
<input class="textfeld" name="textfeld2" type="text" size="3" maxlength="3" onclick="check();" />
</form>
Ich habs jetzt ins reine Geschrieben und die Funktion funktioniert :).
Nur wenn ich die anpasse um sie auf den Server zu spielen läuft noch etwas schief.
Kann ich das denn so *1 im Textfeld schreiben um die ID der Checkbox an das Javascript *2 weiter zu geben?
*1
<input class="textfeld" name="textfeld" type="text" size="3" maxlength="3" onclick="check(<?PHP echo $file_var[$i] ?>_check);" />
*2
<script language="javascript" type="text/javascript">
function check(checkbox)
{
document.getElementById(checkbox).checked = true;
}
</script>
Hi,
document.getElementById(checkbox).checked = true;
dies funktioniert, wenn eine Variable namens checkbox existiert und den richtigen Wert enthält.
Kann ich das denn so *1 im Textfeld schreiben um die ID der Checkbox an das Javascript *2 weiter zu geben?
Es ist unmöglich, diese Frage zu beantworten. Eliminiere bei clientseitigen Problemen *immer* *jeden* serverseitigen Code! Solange hier irgend etwas von PHP sichtbar ist, kommst Du nicht weiter.
Davon abgesehen benötigst Du eventuell keine ID, sondern kannst mit dem Keyword this einfach eine Referenz auf das Texteingabefeld übergeben, von dem aus Du die Checkbox finden kannst. Dies hängt natürlich von Deinem Gesamtkonzwpt ab.
Cheatah
@@Grizzly:
nuqneH
Ich suche schon eine ganze weile nach die Möglichkeit die Checkbox anzukreuzen wenn man in das Texfeld klickt bzw. etwas reinschreibt.
Für beides gibt es http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Eventhandler.
Du solltest dich aber für das richtige Event entscheiden. Bist du sicher, dass du die Checkbox ändern möchtest, wenn der Nutzer eher zufällig das Eingabefeld anklickt und nichts eingibt? Bedenke auch, dass nicht alle Nutzer mit der Maus navigieren. Einige tun dies auch per Tab-Taste und kommen so ganz bestimmt bei dem Eingabefeld vorbei.
Beim Eintreffen des Events <http://de.selfhtml.org/javascript/objekte/elements.htm#checked@title=kreuzt du die Checkbox an>.
Qapla'
@@Gunnar Bittersmann
Du hast völlig recht also benutze ich besser den onkeydown="".
<input class="textfeld" name="textfeld2" type="text" size="3" maxlength="3" onkeydown="check();" />
Danke
@@Grizzly:
nuqneH
Du hast völlig recht
Das mag sein.
also benutze ich besser den onkeydown="".
Aber diu hast völlig unrecht, wenn du denkst, das ich das meinte.
Qapla'
Danke für eure Hilfe ich hab es jetzt ans laufen bekommen.
Das ist die funktionierende Version ohne den lästigen serverseitigen Code.
<script language="javascript" type="text/javascript">
function check(checkboxID)
{
document.getElementById(checkboxID).checked = true;
}
</script>
<form name="order" action="" method="post">
<input id="checkbox" name="text[]" type="checkbox" value="textKlicken" />
<input class="textfeld" name="textfeld1" type="text" size="3" maxlength="3" onkeydown="check('checkbox');" />
<input class="textfeld" name="textfeld2" type="text" size="3" maxlength="3" onkeydown="check('checkbox');" />
</form>
Das ist die funktionierende Version ohne den lästigen serverseitigen Code.
<script language="javascript" type="text/javascript">
lass mal das language-Attribut weg, das ist seit einigen Jahren unerwünscht
function check(checkboxID)
{
document.getElementById(checkboxID).checked = true;
hier fehlt eine Prüfung, ob denn irgendetwas in dem Textfeld steht (dann ist auch die Frage nach dem "richtigen" Event weitgehend überflüssig)
}
</script>