kleines JavaScript: Safari-Bug oder mein Fehler?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von der_Kay, 07.08.2005.

  1. der_Kay

    der_Kay Thread Starter MacUser Mitglied

    Beiträge:
    1.684
    Zustimmungen:
    7
    Mitglied seit:
    02.09.2004
    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: 08.08.2005
  2. Hilarious

    Hilarious MacUser Mitglied

    Beiträge:
    2.161
    Zustimmungen:
    5
    Mitglied seit:
    25.11.2004
    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 ;) )
     
  3. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Mitglied seit:
    05.01.2004
    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.
     
  4. der_Kay

    der_Kay Thread Starter MacUser Mitglied

    Beiträge:
    1.684
    Zustimmungen:
    7
    Mitglied seit:
    02.09.2004
    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 ;)
     
  5. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Mitglied seit:
    05.01.2004
    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.
     
  6. Hilarious

    Hilarious MacUser Mitglied

    Beiträge:
    2.161
    Zustimmungen:
    5
    Mitglied seit:
    25.11.2004
    Finde ich auf jeden Fall sicherer. Oder Du machst es besonders über-elegant mit ajax ;)
     
Die Seite wird geladen...

Diese Seite empfehlen