• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit value-Attribut bei einem Suchprogramm

Werbung:
Wie gesagt, das Beispiel von mir, mit der Hintergrundfarbe, funktioniert. Ein alert() funktioniert. Nur das this.size= .. funktioniert nicht. Es handelt sich also nicht um ein onfocus Problem und mein Beispiel für den OP kann aufgrund dessen uneingeschränkt eingesetzt werden.

Das Problem, dass du jetzt hier in den Thread eingebracht hast ist etwas anderes. Es gibt von solchen Merkwürdigkeiten noch mehr Beispiele, auch im Firefox. z.b. konnte man lange Zeit in einem onblur Event keinen focus per JS setzen. Ich hab heute keinen Zugriff mehr auf einen Safari, werd' mich aber morgen wenn ich Zeit habe, damit beschäftigen
 
Werbung:
Musst Du jetzt wegen mir nicht unbedingt machen :-)
Ist ja keine Arbeit:

Probier es aus, du siehst was Safari da macht. Wenn die Größe per size geändert wird, verliert das select Element den focus und blur wird gefeuert (und die Größe wieder zurückgesetzt).
HTML:
<pre id="debug" style="height:10em;width:50%;overflow:auto"></pre>
      <form>
	  
	  <select name="cc" multiple="multiple" size="5"
      
>
<option>Geht</option>
<option>Geht nicht</option>
<option>Geht</option>
<option>Geht nicht</option>
<option>Geht</option>
<option>Geht nicht</option>
<option>Geht</option>
<option>Geht nicht</option>
</select></form>
<script type="text/javascript">

function debug(txt) {
var out = document.getElementById('debug');
out.innerHTML += txt + "<br>";
}

function onFocus(e) {
	debug(e.type);
	// alert('resize' + this.size);
	this.size = 20;
	// alert('resize' + this.size);
}
function onBlur(e) {
	debug(e.type);
	this.size = 5;
}
var el = document.forms[0]['cc'];
el.onfocus = onFocus;
el.onblur = onBlur;
</script>

Und wenn man die Kommentierung bei den alerts wegmacht, dann funktioniert es.

Ein Workaround wäre, statt this.size = 20 this.style.height = "20em"; zu verwenden, das klappt.
 
Werbung:
Zurück
Oben