Sebhe: Prüfen, ob Checkbox aktiviert wurde

Hallo in die Runde,

ich habe ein vermutlich recht einfach zu lösendes JavaScript-Problem.

Mein Ziel: ich möchte, wenn eine Checkbox ANgehakt IST, in einem Suchfeld einen Text einfügen.

Dazu habe ich mir folgende Funktion erstellt:

function ChgText7()  
  
{  
  
    var suchabfrage = document.getElementById("search-q").value;  
    var MyElement = document.getElementById("search-q");  
if(document.flags7.7.checked == true){  
    MyElement.value = suchabfrage+" Location / Rock - Pop";  
autosuggest1();  
}  
    return true;  
  
}  

Diese Funktion wird an folgender Stelle aufgerufen:

><form name="flags7"><input type="checkbox" name="7" value="Location / Rock - Pop" onclick="ChgText7()">Location / Rock - Pop</form>

Es wird KEIN Text eingefügt und leider finde ich den Fehler nicht. Wenn ich ohne if-Abfrage in der Funktion arbeite "funktioniert" es soweit, dass auch der Text hinzugefügt wird, wenn die Checkbox wieder abgehakt wird. Das soll nicht der Fall sein.

(Nur zur Rahmeninformation: ich werde noch später durch eine Else-Anweisung das ganze erweitern wollen und wenn die Checkbox wieder deaktiviert wird, dann die Suchabfrage um den Text bereinigen.)

Könnt ihr mir helfen?

Würde mich sehr freuen!

Viele Grüße
Sebhe

  1. Hallo in die Runde,

    Moinsen
    if(checkbox.checked == "checked") ...

    Cheers

    1. Hallo Markus**,

      if(checkbox.checked == "checked") ...

      wohl eher:
      if(myCheckbox.checked == true ) ...

      Gruß Gernot

      1. Hi,

        if(checkbox.checked == "checked") ...
        wohl eher:
        if(myCheckbox.checked == true ) ...

        [http://forum.de.selfhtml.org/my/?t=207293&m=1408630@title=weder, noch] ...

        Ciao,
         Martin

        --
        Wer mit dem Finger droht, sollte ihn am Abzug haben, und nicht in der Nase.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Auch

            
              function ChgText7()  
            
          {  
            
              var suchabfrage = document.getElementById("search-q").value;  
              var MyElement = document.getElementById("search-q");  
              if(7.checked == true ){  
              MyElement.value = suchabfrage+" Location / Rock - Pop";  
          autosuggest1();  
          }  
              return true;  
            
          }  
          
          

          funktioniert leider nicht. :/

          1. Hallo,

            if(7.checked == true )
            funktioniert leider nicht. :/

            nein, ich sagte doch schon: Bezeichner dürfen nicht mit einer Ziffer beginnen (vom unnötigen expliziten Vergleich abgesehen). Die Zahl 7 hat eben keine Eigenschaft "checked".

            Ciao,
             Martin

            --
            Man sollte keinen Senf von sich geben, wenn man nicht auch das Würstchen dazu liefern kann.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Danke.

              Leider funktioniert allerdings

              <form name="flags7"><input type="checkbox" name="flag7" value="Location / Rock - Pop" onclick="ChgText7()">Location / Rock - Pop</form>

              in Kombination mit der Funktion

                  function ChgText7()  
                
              {  
                
                  var suchabfrage = document.getElementById("search-q").value;  
                  var MyElement = document.getElementById("search-q");  
                  if(flag7.checked == true ){  
                  MyElement.value = suchabfrage+" Location / Rock - Pop";  
              autosuggest1();  
              }  
                  return true;  
                
              }   
              

              auch nicht. Kannst du dir das nochmal anschauen? Ich sehe schon ich muss mich genauer in JavaScript einarbeiten.

              Vielen Dank!
              Sebhe

              Hallo,

              if(7.checked == true )
              funktioniert leider nicht. :/

              nein, ich sagte doch schon: Bezeichner dürfen nicht mit einer Ziffer beginnen (vom unnötigen expliziten Vergleich abgesehen). Die Zahl 7 hat eben keine Eigenschaft "checked".

              Ciao,
              Martin

              1. Hi,

                <form name="flags7"><input type="checkbox" name="flag7" value="Location / Rock - Pop" onclick="ChgText7()">Location / Rock - Pop</form>

                die Verwendung von sehr ähnlichen Bezeichnern (hier flags7 und flag7) kann auch problematisch sein, weil man dann leicht durcheinanderkommt. Erlaubt ist es selbstverständlich, solange man den Überblick behält. ;-)

                function ChgText7()

                {

                var suchabfrage = document.getElementById("search-q").value;
                    var MyElement = document.getElementById("search-q");
                    if(flag7.checked == true ){
                    MyElement.value = suchabfrage+" Location / Rock - Pop";
                autosuggest1();
                }
                    return true;

                  
                Auch hier: Deine Bezeichner sind ungünstig gewählt. Während suchabfrage für den eingegebenen Suchtext noch okay ist, vermittelt MyElement keine Aussage - zumal ich nirgends in deinem Code ein Element mit der ID "search-q" finde. Ich vermute, es hätte das Eingabefeld selbst sein sollen.  
                  
                Und dann taucht plötzlich aus heiterem Himmel noch der Bezeichner flag7 auf, der weder definiert wurde, noch in irgendeiner Verbindung zum Formular steht (außer, dass das Eingabefeld "zufällig" diesen Namen hat).  
                  
                
                > Ich sehe schon ich muss mich genauer in JavaScript einarbeiten.  
                  
                Ja, und vor allem in die Zusammenhänge zwischen Javascript und dem zugrundeliegenden HTML, mit dem du arbeitest.  
                  
                
                > > Hallo,  
                > > [full quote removed]  
                > > Ciao,  
                > >  Martin  
                  
                Und nächstes Mal bitte ohne [TOFU](http://de.wikipedia.org/wiki/TOFU). Danke.  
                  
                So long,  
                 Martin  
                
                -- 
                Wer mit dem Finger droht, sollte ihn am Abzug haben, und nicht in der Nase.  
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                
    2. Danke Markus. Leider stehe ich aber auf dem Schlauch:

      sowohl

         function ChgText7()  
        
      {  
        
          var suchabfrage = document.getElementById("search-q").value;  
          var MyElement = document.getElementById("search-q");  
          if(7.checked == "checked"){  
          MyElement.value = suchabfrage+" Location / Rock - Pop";  
      autosuggest1();  
      }  
          return true;  
        
      }  
      
      

      Als auch

      ~~~javascript function ChgText7()

      {

      var suchabfrage = document.getElementById("search-q").value;
          var MyElement = document.getElementById("search-q");
          if(checkbox.checked == "checked"){
          MyElement.value = suchabfrage+" Location / Rock - Pop";
      autosuggest1();
      }
          return true;

      }

        
      führen nicht zum Ergebnis.  
        
      Kannst du mir weiterhelfen?  
        
      
      > > Hallo in die Runde,  
      > Moinsen  
      > if(checkbox.checked == "checked") ...  
      >   
      > Cheers
      
  2. Hallo,

    if(document.flags7.7.checked == true)

    das geht so nicht, auch wenn das Feld den Namen "7" hat: Javascript-Bezeichner dürfen nicht mit einer Ziffer beginnen. Verwende in diesem Fall alternative Methoden, das Objekt zu adressieren. Schema 4 bietet sich an.

    Außerdem ist die Formulierung unbeholfen: "Ist es wahr, dass ... wahr ist?"
    Es ist nicht falsch, aber auch nicht sinnvoll, einen boolschen Ausdruck noch explizit mit true oder false zu vergleichen, das macht's nur schlechter lesbar.

    Es wird KEIN Text eingefügt und leider finde ich den Fehler nicht.

    In die Javascript-Fehlerkonsole hast du aber auch nicht geschaut?

    So long,
     Martin

    --
    You say, it cannot be love if it isn't for ever.
    But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(