JS / checkbox / stehe gerade auf der Leitung

ildottore

Grünschnabel
Hallo!

Ich würde eure Hilfe benötigen.

Ich habe 3 Checkboxen und möchte deren Werte in document.write ausgeben.

Mein Ansatz scheint jedoch falsch zu sein;
Javascript:
function checked () {

if (document.browser.internetExplorer.checked == true) var browser1 = InternetExplorer;
if (document.browser.FireFox.checked == true) var browser2 = FireFox;
if (document.browser.Safari.checked == true) var browser3 = Safari;

var ergebnis = browser1 + browser2 + browser3;


document.write(ergebnis);


}
HTML:
<form id="browser" name="browser" method="post" action="">

    <input type="checkbox" name="interneExplorert" id="internetExplorer" />

    <input type="checkbox" name="FireFox" id="FireFox" />

    <input type="checkbox" name="Safari" id="Safari" />

= = = >

Die ausgabe soll so aussehen:

Ich verwende diesen/diese Browser: Inernet Explorer

ODER


Ich verwende diesen/diese Browser: Inernet Explorer, FireFox

ODER


Ich verwende diesen/diese Browser: Inernet Explorer, FireFox, Safari



Danke & lG
 
Zuletzt bearbeitet von einem Moderator:
1. Benutze bitte die entsprechenden Code-Tags ([ code=javascript ][ /code ])
2. Die Variablen "browser1", "browser2" und "browser3" sind nur innerhalb der jeweiligen If-Blöcken definiert, aber nicht danach
3. Was ist "InternetExplorer", "FireFox" und "Safari"? Wenn es Strings sein sollen, fehlen die Anführungsstriche.
 
1.) Ich habe für dich die Codetags hinzugefügt, beim nächsten Mal bitte selber machen ;)

Sehe ich das richtig, dass du auf einen bestimmten Browser prüfen möchtest? Die Eigenschaften, die du erwähnt hast, gibt es eigentlich nicht.
Dafür aber navigator.userAgent
Da sind aber auch andere Daten drin und bei Chrome steht z.B. auch "Mozilla" drin.
Du müsstest eben auf einen eindeutigen Namen prüfen, der nur in denjenigem Browser anzufinden ist. Zum Beispiel für Chrome:
Javascript:
function isChrome()
{
  if (navigator.userAgent.toLowerCase().indexOf("chrome"))
    return true;
  return false;
}
 
Code:
<html>
<head>
<script type="text/javascript">

function checked () {

// ich definiere mal die Variablen
var browser1 = "InternetExplorer";
var browser2 = "FireFox";
var browser3 ="Safari";

// Abfrage
if (document.browser.internetExplorer.checked == true) browser1
if (document.browser.FireFox.checked == true) browser2
if (document.browser.Safari.checked == true) browser3

var ergebnis = browser1 + browser2 + browser3;

//Ausgabe
document.write(ergebnis);

}
</script>
</head>
<body>

<form id="browser" name="browser" method="post" action="">
<input type="checkbox" name="internetExplorert" id="internetExplorer" />
<input type="checkbox" name="FireFox" id="FireFox" />
<input type="checkbox" name="Safari" id="Safari" />

</body>
</html>

So.. hab die Tips gleich mal umgesetzt.

Funktionieren tut das Script aber noch nicht.

Bitte weiter um Hilfe.

Danke!
 
Zuletzt bearbeitet:
Wir haben zeitgleich geantwortet, also nochmal Hinweis auf den Tippfehler. Außerdem, was soll denn diese Zeile hier bewirken:

Javascript:
if (document.browser.internetExplorer.checked == true) browser1

Es fehlt ein Semikolon und selbst dann ist "browser1" keine gültige Anweisung.
 
@CPoly:

Achso, Danke für den Hinweis. Ich habe jetzt nirgends ein getElementById() oder ähnliches gesehen und dachte er möchte auf so eine Art "Browservariable" zugreifen.

@ildottore:

Bitte schreibe deinen Code in die sog. Codetags! Also [code=javascript]...[/javascript und [code=html]...[/code], dann können wir den Code besser lesen !

Du musst auf die Input-Felder per document.getElementById() zugreifen.
Javascript:
var browser = '';
if (document.getElementById("internetExplorer").checked==true)
  browser = 'ie';
Wenn ich dir einen Tip geben darf: Verwandle die Checkboxen zu Radioboxen (jeweils nur eine Option selektierbar) und gebe ihnen ein value-Attribut:
HTML:
<form id="browser" name="browser" method="post" action="">

<input type="radio" name="browser" value="ie" />
<input type="radio" name="browser" value="ff" />
<input type="radio" name="browser" value="safari" />

</form>
Javascript:
var browserRadios = document.getElementsByName("browser");
var browserVal = "";
for (var i=0; i<browserRadios.length; i++)
{
  if (browserRadios[i].checked)
  {
     browserVal = browserRadios[i].value;
     break;
  }
}
alert(browserVal);
Wobei ich mir gerade nicht ganz sicher bin, ob es beim JS hier einen eleganteren Weg gibt ;)
 
Zunächst mal Danke für eure Unterstützung.

Ich hab es noch immer nicht hinbekommen. Dabei kanns ja wirklich nicht so schwer sein :(

Ich fass nochmals kurz zusammen.

Ich habe 3 Checkboxen.
Man soll je nach belieben eine, zwei oder alle 3 anklicken dürfen.

Das ergebnis soll dann in Textform via document.write(); ausgegeben werden.

Beispiel:

Box A
Box B
Box C

Als Ausgabe soll dann kommen:

Du hast A und B

Ich werde mal weiter versuchen dies umzusetzen
 
HTML:
<html>
<head>
	<script type="text/javascript">
		function update() {
			var out = document.getElementById('out');
			var ergebnis = [];
			
			if (document.browser.internetExplorer.checked)
				ergebnis.push('Internet Explorer');
				
			if (document.browser.Firefox.checked)
				ergebnis.push('Firefox');
			
			if (document.browser.Safari.checked)
				ergebnis.push('Safari');
			
			out.innerHTML = ergebnis.join(', ');
		}
	</script>
</head>

<body>
	<form id="browser" name="browser" method="post" action="">
		<input type="checkbox" name="internetExplorer" onchange="update();" />
		<input type="checkbox" name="Firefox" onchange="update();" />
		<input type="checkbox" name="Safari" onchange="update();" />
	</form>
	<p id="out"></p>
</body>
</html>
 
WOW - das ist krass!

Das was ich benötige soll aber viel simpler sein.


Ich hab schon ein bestehendes Formular mit Textfeldern etc.

Die Ausgabe wird via mailto an den Mailclient übergeben.

Zusätzlich kommen eben nun die 3 Checkboxen dazu.

Daher benötige ich nur eine Variable, die den Wert der Checkboxen ausgibt (A, AB, ABC, B, AB, C, CB oder nichts).
 

Neue Beiträge

Zurück