• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

disabled im Ajax Request klappt nicht

mikdoe

Moderator
Hi!
Firefox und Safari erfreuen mich heute wieder ganz besonders.
Bitte sag mir doch mal einer, wieso die beiden mir während des Ajax die Schaltflächenbeschriftung nicht ausgrauen.
IE9 und Opera 11.64 machen es wunderbar genau wie gewünscht.
Lasse ich class="navigation" ganz weg sehen sich auch Safari und FF genötigt, die Fläche auszugrauen.
Was ist falsch an dem CSS/Code?

HTML:
<!DOCTYPE HTML>
<html>
	<head>
		<script type="text/javascript" src="/javascript/jquery.js"></script>
		<script type="text/javascript" src="/javascript/jquery-ui.js"></script>
		<script type="text/javascript" src="/javascript/jquery-set.js"></script>
	</head>
	<style>
		.navigation {
			background-color:	#D0D0D0;
			font-family:		"Arial";
			font-size:			12px;
			color:				blue;
			width:				100px;
			height:				26px;
			padding:			1px;
			cursor:				pointer;
			border-style:		outset;
			text-align:			center;
			font-size:			11px;
			letter-spacing:		0.03em;
			font-weight:		bold;
		}
	</style>
	<body>
		<div><input id="schalter" type="button" value="Test" class="navigation"></div>
		<script>
			function testreq () {
				document.getElementById('schalter').disabled = true;
				jQuery.ajax ({
					url: 'test.pl',
					data: '',
					type: 'POST',
					cache: false,
					success: function () {
						document.getElementById('schalter').disabled = false;
						window.setTimeout(function () {testreq();},3000);
					},
					error: function () {
						document.getElementById('schalter').disabled = false;
						window.setTimeout(function () {testreq();},3000);
					}
				});
			}
			testreq();
		</script>
	</body>
</html>
Die test.pl macht nichts weiter als nach 3 Sekunden einen Header zu liefern, um das Problem zu reproduzieren.
Danke für alle Hinweis.
 
Wenn du dem Browser sagst, dass der Text blau sein soll, dann macht das er das auch (wenn er vernünftig arbeitet).
Das ist mal wieder ein klassisches IE-Sache, dass er versucht zu erraten, was du haben willst. Wenn du jetzt bei einem deaktiviertem Button als Schriftfarbe gerne lila hättest (oder was auch immer...) macht dir das der IE nicht.

Wenn du willst, dass dein Button beim deaktivieren anders aussieht, musst du ihm natürlich auch sagen, dass er jetzt anders aussehen soll - und zwar im CSS über eine zusätzliche Klasse (außer im IE - da geht das nicht...).
 
Wenn du willst, dass dein Button beim deaktivieren anders aussieht, musst du ihm natürlich auch sagen, dass er jetzt anders aussehen soll - und zwar im CSS über eine zusätzliche Klasse (außer im IE - da geht das nicht...).
OK, kann ich nachvollziehen auch wenn es mir mal wieder garnicht gefällt. Thema intuitives Richtigverhalten und so :)
Was kann man denn wohl meinen, wenn man einen Button auf disabled setz? Na ja, anderes Thema....
Wenigstens zieht der Opera bei diesem Problem auch korrekt mit, dass ihr nicht immer nur auf den IE schimpft :)
Mit welchen CSS Def's kann ich denn am besten ein "disabled" nachempfinden?
 
Opera hat bei mir darüber hinaus auch noch seltsamerweise einen blauen Rahmen.

Schimpfen muss man mittlerweile nicht mehr über den IE (wenn wir von aktuellen versionen sprechen), denn Fehler haben alle Browser.

http://reference.sitepoint.com/css/pseudoclass-disabled
Seltsamerweise steht hier, dass Opera das pseudo Element unterstützt, was bei mir aber nicht der Fall ist, zumindest die Schriftfarbe wird ignoriert.

Das Gestalten von Formularelementen ist häufiger von Problemen begleitet. Der Artikel ist zwar etwas älter, aber ich vermute er hat immer noch eine gewisse Gültigkeit http://www.webkrauts.de/2007/05/31/verrueckte-formulare/
 
Danke für alle Antworten.
Ich knall jetzt in die Spalte einfach einen Wartekreisel. Hab auf dieses Zeug keinen Bock.
Wenn die Spezi mal wieder wichtiger ist als der Zweck dann umgehe ich das elegant ;)
 
Ich verstehe die Reaktion nicht, was ist denn der Zweck, der sich nicht erfüllt?
Na ich müsste ein CSS definieren, das optisch einen disabled Zustand simuliert. Und da habe ich keinen Bock drauf. Sieht doch in allen Browsern wieder anders aus. Mit so einem Quatsch beschäftige ich mich nicht.
Für mich ist die Intuition eindeutig. Ich will einen Button disabled haben. Und dafür ein eigenes CSS zu definieren sehe ich garnicht ein. Bei solchen "der Browser erfüllt wider jeglichen Sinnes und aller Intuition die Spezifikation"-Spielchen mache ich einfach vom Grundsatz her nicht mit.
 
Na ich müsste ein CSS definieren, das optisch einen disabled Zustand simuliert.
Nein, du müßtest im CSS die Eigenschaften für den disabled Zustand definieren, so wie z.b. auch bei Links.

Und da habe ich keinen Bock drauf. Sieht doch in allen Browsern wieder anders aus. Mit so einem Quatsch beschäftige ich mich nicht.
Wie schon gesagt, Formularelemente gestalten war schon immer ein Problem, daher ist es am sinnvollsten sich mit dem "Quatsch" nicht zu beschäftigen und die Elemente so zu lassen wie sie der Browser darstellt, ist auch für den Benutzer am einfachsten.

Für mich ist die Intuition eindeutig. Ich will einen Button disabled haben. Und dafür ein eigenes CSS zu definieren sehe ich garnicht ein. Bei solchen "der Browser erfüllt wider jeglichen Sinnes und aller Intuition die Spezifikation"-Spielchen mache ich einfach vom Grundsatz her nicht mit.
Wie schon gesagt, das ist der normale Weg. Auch besuchte Links sehen nur anders aus, wenn du das im CSS explizit so schreibst, aber wenn du sowas grundsätzlich nicht machst, dann sind besuchte Links eben Lila.
 
Nein, du müßtest im CSS die Eigenschaften für den disabled Zustand definieren, so wie z.b. auch bei Links.
Ja, ich müsste einen
Code:
...:disabled{}
Bereich für das Element definieren. Und was schreibe ich da rein, damit es in allen Browsern jeweils so aussieht wie der Browser auch ansonsten ein disabled Element darstellt?
border-style: inset; ? Ist es das schon? Und die Farbe?
Wie schon gesagt, Formularelemente gestalten war schon immer ein Problem, daher ist es am sinnvollsten sich mit dem "Quatsch" nicht zu beschäftigen und die Elemente so zu lassen wie sie der Browser darstellt, ist auch für den Benutzer am einfachsten.
Hast du die Anforderung verstanden?
Ich will garnichts gestalten. Ich will lediglich ein <button> Element auf disabled setzen und der Benutzer soll das sehen. Aber zwei Browser spielen - wie so oft - nicht mit.
 
Hast du die Anforderung verstanden?
Ich will garnichts gestalten. Ich will lediglich ein <button> Element auf disabled setzen und der Benutzer soll das sehen. Aber zwei Browser spielen - wie so oft - nicht mit.
Ja, der IE und Opera. Wobei meistens der IE Probleme hat.

Wie gesagt, wenn du im CSS schreibst a{ color:green;} siehst du auch nicht mehr die besuchten Links und musst die Farbe explizit definieren, hier ist es genau das gleiche. Wenn du den Button gestaltest, dann musst du alle seine Zustände gestalten.
 
Der Button wird doch auch auf "disabled" gesetzt - nur hast du die graphische Darstellung dafür überschrieben... mit deinem CSS. Die Browserdefaults der Darstellung hat in CSS (normalerweise und laut Specs) die geringste Priorität.
 
Ja, der IE und Opera. Wobei meistens der IE Probleme hat.
Und genau die beiden machen es hier eben genau wie gewünscht.
Ich meine, welchen Sinn macht es denn, dass ein Browser nur aufgrund einer CSS Anweisung die sich auf den nicht-disabled Teil bezieht im disabled Zustand den Button unverändert läßt?

Aus der Tatsache, dass der abled-Zustand definiert ist abzuleiten, dass der disabled Zustand auch definiert zu sein hat oder ich ändere den Button nicht (aus Sicht Browser) finde ich Blödsinn. Und offensichtlich sehen das die Programmierer des IE und Opera genau wie ich, denn die verhalten sich näher am objektiv Gewollten als FF und Safari.

nur hast du die graphische Darstellung dafür überschrieben... mit deinem CSS.
Wie gesagt. Den abled Zustand habe ich überschrieben, nicht den disabled Zustand. In meinen Augen verhalten sich FF und Safari hier falsch.
Aber es ist ja immer so, dem einen gefällt es, dem anderen nicht. Wenn es wenigstens alle gleich handhaben würden, aber nein.........
 
Zuletzt bearbeitet:
Wie gesagt. Den abled Zustand habe ich überschrieben, nicht den disabled Zustand. In meinen Augen verhalten sich FF und Safari hier falsch.
Aber es ist ja immer so, dem einen gefällt es, dem anderen nicht.
So ist das halt mit den Geschmäckern... der Eine mag es so und der Andere eben anders. Oder wie man auch so schön sagt: 2 Stühle > 3 Meinungen.


Wenn es wenigstens alle gleich handhaben würden, aber nein.........
Das wünscht sich denke ich mal Jeder von uns, aber so ist das halt mit den Wünschen und der Realität. Das Problem ist ja auch: Nach welchem Standard sollten sich den alle Browser richten? Es gibt ja keinen "offiziellen" Standard in dem Sinne, sondern nur Konsortien, wie das W3C, welche versuchen einen (quasi)-Standard zu verfassen an den sich bitte alle Browser freiwilig halten. Zum Glück versuchen diese mittlerweile das dort definierte umzusetzen, wobei manche Interpretation auch mal fehlschlagen kann bzw. Rechte-/Lizenzprobleme oder Lizenzkosten (Audio/Video) auch wieder Unterschiede an den Tag bringen.

Dein Wunsch würde also erst in Erfüllung gehen, wenn jede Browserveröffentlichung vorher z.B. vom W3C geprüft werden muss und eben diese dann entscheiden dürften ob veröffentlicht wird oder erst nachgearbeitet werden muss. Der Nachteil dabei wäre dann aber, dass Eigenentwicklungen bzw. -erweiterungen der Standards aussterben würden, was dann wiederum das W3C zurückwerfen wird, weil die Ideengeber wegsterben...
 
Und genau die beiden machen es hier eben genau wie gewünscht.
Ich meine, welchen Sinn macht es denn, dass ein Browser nur aufgrund einer CSS Anweisung die sich auf den nicht-disabled Teil bezieht im disabled Zustand den Button unverändert läßt?
Der Sinn ist, dass sich die Angabe auf einen Button im allgemeinen bezieht, wenn du die Eigenschaften nur im enabled Zustand geändert haben möchtest, dann benutze .navigation:enabled

Aus der Tatsache, dass der abled-Zustand definiert ist abzuleiten, dass der disabled Zustand auch definiert zu sein hat oder ich ändere den Button nicht (aus Sicht Browser) finde ich Blödsinn. Und offensichtlich sehen das die Programmierer des IE und Opera genau wie ich, denn die verhalten sich näher am objektiv Gewollten als FF und Safari.
Beim IE ist es eher so, dass er es gar nicht anders kann.
 
Zurück
Oben