Grizzly: Formular | Checkbox aktivieren beim benutzen des Textfeldes

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

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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>  
      
      
      1. 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

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. @@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'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. @@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

      1. @@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'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  3. 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>  
    
    
    1. 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>