Checkbox sperren

icefire

Erfahrenes Mitglied
Hallo!
Mit Java-Skript beschäftige ich mich erst seit kurzem - und habe noch nicht so recht den Durchblick! Folgendes Problem: Ich habe 2 Checkboxen zur Auswahl. Nun möchte ich die Auswahl auf eine Checkbox gegrenzen - habe aber schon eine onklick Funktion eingebaut:

Code:
<td height="30px">
<input type="checkbox" onclick="document.getElementById('selektion1').style.display = this.checked ? '' : 'none';" name="selektion1" value="111">&nbsp;Outdoor
</td>
<!-- Checkbox nach Auswahl1 -->
<td id="selektion1" style="display:none">
<input type="checkbox" name="aussen" value="111">&nbsp;111&nbsp;&nbsp;
<input type="checkbox" name="aussen" value="222">&nbsp;222&nbsp;&nbsp;
<input type="checkbox" name="aussen" value="333">&nbsp;333
</td>
<td height="30px">
<input type="checkbox" onclick="document.getElementById('selektion2').style.display = this.checked ? '' : 'none';" name="selektion2" value="222">&nbsp;Indoor
</td>
<!-- Checkbox nach Auswahl2 -->

Welche Möglichkeit habe ich, eine 2te onclick Funktion einzubauen, um nur eine Auswahlmöglichkeit zu erhalten
Die Auswahl der Checkbox bestimmt später die weitere Verarbeitung in einem anderen Dokument, wo ich dann beispielweise mit if($_REQUEST["action"] == selektion1'){.. usw. weitere Details aufnehmen kann.

Vielen Dank für eure Hilfe! :-)
 
FORENSUCHE

Diese Frage wurde alllein im letzten Monat sicher fünf mal gestellt. Bitte, bitte bitte erst die Forensuche UND Google ausgibigst benutzen bevor man hier fragt, Leute!

Der Schülissel ist nicht je ein Aufruf in zwei onclick, sondern zwei Aufrufe in einem onlick durch Semikola getrennt zu verwenden. Will sagen, du kannst zwei JS-Anweisungen in einem onclick hintereinander ausführen lassen, wenn sie durch ein ";" getrennt sind.
Beispiel:
HTML:
onclick="alert(1); alert(2);"

Selbst wenn das nicht ginge könntest du eine Funktion in einem <script>-Bereich deklarieren, die deine beiden Funktionen aufruft und die eine funktion dann in den onclick schreiben.
Beispie:
HTML:
<script type="text/javascript">
    function alert_two() {
    alert(1);
    alert(2);
    }
    </script>
    
    ... onclick="alert_two()" ...
Ein mindestmaß an Kreativität und praktischem Deken würde uns viel Arbeit erstparen.
 
Zuletzt bearbeitet:
Natürlich suche ich als erstes das Forum und teilweise auch Google nach Lösungen durch. Auch habe ich da eine Sache gefunden, die eine Begrenzung ermöglicht - aber die Funktioniert nur ohne meinem Code! :confused:

Code:
<head>
<script type="text/javascript" language="JavaScript">
	function cbLimit()
	{

		with(document.forms[0])
		{
			var cbLimit = 1; // Maximale Auswahl
			var cbCount = 0;
			var cbSel   = 0;

			/* Anzahl der Checkboxen und der ausgewählten bestimmen */
			for (var n = 0; n < elements.length; n++) 
			{
				if(elements[n].type.toLowerCase() == 'checkbox') // 'radiobutton'
				{
					cbCount += 1;  // ++cbCount oder cbCount++ - sieht so aber schöner aus 
					cbSel   += elements[n].checked;
				}
				 
			}

			/* Auswertung */	
			for (var n = 0; n < cbCount; n++)
				elements[n].disabled = !elements[n].checked && cbSel >= cbLimit;

		}
	}
</script>
</head>
<body>
Maximal eine Checkbox kann gewählt werden:<br>
<form action="" method="post" name="cbTest">
	<input type="checkbox" name="cb_1" onClick="cbLimit();">
	<input type="checkbox" name="cb_2" onClick="cbLimit();">
	<input type="checkbox" name="cb_3" onClick="cbLimit();">
	<input type="checkbox" name="cb_4" onClick="cbLimit();">	
</form>
</body>


Das Prinzip habe ich versucht einzubauen - aber da tut sich nichts! :-( Dafür wird ein nicht betroffendes Dropdownmenu geschlossen und das ergibt nicht grad einen Sinn.

Mit <input type="checkbox" onclick="document.getElementById('selektion1').style.display = this.checked ? '' : 'none';cbLimit();"> habe ich dann versucht das Skript einzubinden.

Ich hab bald nen Kollabs... :suspekt:
 
Mit diesem Code wird eine checkbox geschlossen, und das untermenü aufgerufen. Leider kann ich aber dabei nichts mehr anklicken! gibts da eine Möglichkeit, das zu unterbrechen?

Code:
<form action="" method="post" name="cbTest">
<table>
<tr>
<td>
<input type="checkbox" onclick="cbLimit();document.getElementById('test1').style.display = this.checked ? '' : 'none';">&nbsp;Aussenarbeiten&nbsp;&nbsp;
<input type="checkbox" onclick="cbLimit();document.getElementById('test2').style.display = this.checked ? '' : 'none';">&nbsp;Innenarbeiten
</td>
</tr>
<tr id="test1" style="display:none">
<td>
	<input type="checkbox" name="aussen" value="fassade">&nbsp;Fassade&nbsp;&nbsp;
	<input type="checkbox" name="aussen" value="holz">&nbsp;Holzwerk&nbsp;&nbsp;
	<input type="checkbox" name="aussen" value="metall">&nbsp;Metallschutz</td>
</tr>
</tr>
<tr id="test2" style="display:none;">
<td>
	<input type="checkbox" name="innen" value="treppenhaus">&nbsp;Treppenhaus&nbsp;&nbsp;
	<input type="checkbox" name="innen" value="zimmer">&nbsp;Zimmer&nbsp;&nbsp;
	<input type="checkbox" name="innen" value="tueren">&nbsp;Türen und Zarge</td>
</tr>
</table>
</form>

Funktioniert natürlich nur mit dem oben geposteten function cbLimit() Funktion!
 
Ich habs nun etwas anders gelöst - also kann dieses Thema geschlossen werden. Hier noch kurz die aktuelle Variante:

Code:
<input type="checkbox" id="sel1" name="selektion1" onclick="document.getElementById('select1').style.display = this.checked ? '' : 'none';document.getElementById('select2').style.display = 'none'; document.getElementById('sel2').checked = false;">

Den Rest kann man sich ja von oben entnehmen! :-)

MfG
Ice
 
icefire hat gesagt.:
Ich habs nun etwas anders gelöst - also kann dieses Thema geschlossen werden.
Durch einen Klick auf den 'Status-Button' rechts unterhalb des letzten Beitrags kannst du das Thema als 'erledigt' markieren.
 

Neue Beiträge

Zurück