Prüfen, ob Checkbox aktiviert wurde
Sebhe
- javascript
0 Markus**0 Gernot Back0 Der Martin0 Sebhe0 Der Martin0 Sebhe
0 Sebhe
1 Der Martin
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
Hallo in die Runde,
Moinsen
if(checkbox.checked == "checked") ...
Cheers
Hallo Markus**,
if(checkbox.checked == "checked") ...
wohl eher:
if(myCheckbox.checked == true )
...
Gruß Gernot
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
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. :/
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
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
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:(
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
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