2011-04-04 3 views
0
<html> 
<body> 

<select onfocus='blur(this);'> 
    <option>Volvo</option> 
    <option>Saab</option> 
    <option>Mercedes</option> 
    <option>Audi</option> 
</select> 

</body> 
</html> 

Dans firefox cela fonctionne très bien. Dans IE8, en cliquant à plusieurs reprises, vous pouvez obtenir les options à apparaître. Ce qui donne? Y at-il autre chose que je puisse faire pour que le select soit en lecture seule sans le montrer comme désactivé?JavaScript flou ne fonctionne pas dans IE

+0

essayer 'flou()' – reporter

Répondre

2

il serait onfocus = "this.blur()"

mais pourquoi voudriez-vous faire? Juste le désactiver. Si vous avez besoin de la valeur, le copier dans un champ caché

MISE À JOUR:

<script> 
function changeSel(idx) { 
    var sel = document.forms[0].sel; 
    sel.selectedIndex=idx; 
    sel.form.selCopy.value=idx; 
} 
window.onload=function() { 
    changeSel(document.forms[0].sel.selectedIndex); 
} 
</script> 
<form> 
<input type="text" name="selCopy" value="not set" /> 
<select name="sel" size="1" disabled="disabled"> 
<option>Zero</option> 
<option>One</option> 
<option selected>Two</option> 
<option>Three</option> 
<option>Four</option> 
</select> 
<input type="button" onClick="changeSel(3)" value="Three" /> 
</form> 
+0

Merci. Mais même problème dans IE8, vous pouvez toujours obtenir les options à afficher. Je fais ceci parce que je montre un popup quand la sélection est cliquée parce que je ne veux pas que la liste d'options apparaisse au-dessous du select. Je ne pouvais pas trouver un moyen de le repositionner. – tim

+0

@Tim, cela signifie que votre question est fausse. Au lieu de poser la question sur ce que vous voulez et non comment résoudre le problème que vous avez lorsque vous avez décidé d'une solution de contournement spécifique :) – mplungjan

+0

@Tim fondamentalement, il semble que vous ne voulez pas un choix du tout – mplungjan