kleines JavaScript: Safari-Bug oder mein Fehler?

der_Kay

der_Kay

Aktives Mitglied
Thread Starter
Dabei seit
02.09.2004
Beiträge
1.765
Reaktionspunkte
25
Hallo zusammen,

unten ein simples Script: eine Checkbox und ein Auswahlfeld. Kreuzt man die Checkbox an, soll Option Nr. 2 des Auswahlfeldes deaktiviert werden.

Das funktioniert einigermassen in Firefox 1.0.6 und Opera 8.0. Aber Safari 2.0 (412.2) ignoriert das Script komplett, sendet "Option 2" brav, auch wenn sie "deaktiviert" wurde... Bug, Feature oder mein Fehler?

Vielen Dank fürs Draufschauen!

Kay

kurzer Nachtrag:
kann es sein, das Safari das "disabled"-Attribut innerhalb einer <option> komplett ignoriert?
HTML:
<html>
<head>
<script type="text/javascript">
function do_disable_op2()
{
	var opt2 = document.getElementById('opt2');
	var chbx = document.getElementById('chbx');
	opt2.disabled = chbx.checked;
}
</script>
</head>
<body>
<?php
function dump($value, $key) {
	echo($key.' : '.(!$value ? "(null) / (FALSE)" : $value).'<br>');
}
if(isset($_POST)) { array_walk($_POST,'dump'); }	
?>
<form method="POST" action= <?php echo( $_SERVER['PHP_SELF']); ?> >
	<input id="chbx" type="checkbox" name="checkbox_value" 
		onChange="do_disable_op2();">
			Disable Option2 	<br>		
	<select name="Selection">
		<option id="opt0" value="Option 0">Option 0</option>
		<option id="opt1" value="Option 1">Option 1</option>
		<!-- diese soll abgeschaltet werden -->
		<option id="opt2" value="Option 2">Option 2</option>
		<option id="opt3" value="Option 3">Option 3</option>
	</select>
	<br>
	<input type="submit" value="Submit">
</form>
</body>
</html>
 
Zuletzt bearbeitet:
Sieht ganz so aus, als würde Safari diese Methode nicht unterstützen. Hmmm.
Nebenbei: Für den Dump eignet sich auch ganz gut: echo "<pre>\n", print_r($var), "</pre>\n";
(so hast Du vielleicht ein bisschen was von dieser Antwort ;) )
 
der_Kay schrieb:
kann es sein, das Safari das "disabled"-Attribut innerhalb einer <option> komplett ignoriert?

Da wäre er nicht alleine.

Aber wenn Du den Status der Checkboxen mit PHP abfragst ergibt sich doch in der späteren Berechnung automatisch, welche Felder nicht aktiviert sein können.
 
Jakob schrieb:
Aber wenn Du den Status der Checkboxen mit PHP abfragst ergibt sich doch in der späteren Berechnung automatisch, welche Felder nicht aktiviert sein können.

Danke für den Link! Ich wollte Fehleingaben bereits im Vorfeld verhindern; ist nicht schlimm, wenn es so nicht geht. Dann halt in der Evaluierungsroutine ;)
 
Du könntest natürlich auch den Eintrag komplett verschwinden lassen, oder ein Skript schreiben, dass der jeweilige Eintrag nicht fokussiert werden kann, aber am End ist das bisschen umständlich für etwas nich so Wichtiges.
 
der_Kay schrieb:
Danke für den Link! Ich wollte Fehleingaben bereits im Vorfeld verhindern; ist nicht schlimm, wenn es so nicht geht. Dann halt in der Evaluierungsroutine ;)

Finde ich auf jeden Fall sicherer. Oder Du machst es besonders über-elegant mit ajax ;)
 
Zurück
Oben Unten