2009-11-10 6 views
1

J'ai un formulaire HTML avec une liste de sélection et un bouton radio, les deux étant initialement définis avec disabled = true. À un certain point, ces éléments sont activés via JavaScript (c'est-à-dire, disabled = false). Cela fonctionne très bien dans IE et Chrome, mais dans FireFox, l'élément reste désactivé. Il semble être activé, mais ne répond pas aux clics de souris. Lorsque j'inspecte l'un des éléments à l'aide de FireBug, l'attribut disabled est false. Existe-t-il des problèmes connus avec FireFox lors de la gestion d'éléments de formulaire initialement désactivés, puis activés?Gestion des champs désactivés par FireFox

Merci.

+1

Comment êtes-vous de réactiver les éléments? Pourriez-vous poster du code pour que nous puissions le voir? – Buggabill

+0

êtes-vous sûr que ce n'est pas cette erreur? http://stackoverflow.com/questions/3004885/attrdisabled-disabled-problem/3005665#3005665 – meo

+0

duplication possible de [Bug avec Firefox - Attribut désactivé de l'entrée ne pas réinitialiser lors de l'actualisation] (http://stackoverflow.com/questions/ 5985839/bug-with-firefox-disabled-attribut-de-input-not-reset-when-refresh) – Liam

Répondre

1

J'ai été capable de résoudre ce problème en utilisant jQuery pour définir et supprimer l'attribut désactivé plutôt que de le définir directement. Je ne suis pas sûr de ce qu'il fait sous le capot pour le faire fonctionner.

$(control).attr('disabled', 'disabled'); 
$(control).removeAttr('disabled'); 
0

Works pour moi:

<select id="a" disabled="true"> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
<option>4</option> 
</select> 

<script type='text/javascript'> 
document.getElementById('a').disabled=false 
</script> 
0

J'ai prises avec le même problème. Je suis encore en train de tester, mais j'ai trouvé que l'emballage de l'élément de forme dans une balise span/div et l'attachement onclick à l'span/div (avec rembourrage) semble fonctionner. Le seul problème restant est de définir l'index z pour superposer l'entrée et de la modifier après le clic, donc c'est sous l'entrée du formulaire (pas sûr si c'est possible - je n'aime pas lire les docs).

// Begin Body Code

<form name="theform"><table><tr><td><span style="padding:5px;border:1px solid black;" onclick="edit('myId1');"><input onclick="edit();" disabled id="myId1" type="text"" value="Value One" /></span></td></tr></form> 

// Fin Body Code

0

J'ai toujours utilisé ...

document.getElementById (ID) .disabled = » désactivé "

... et ...

document.getElementById (ID) .disabled = ""

... au lieu de vrai/faux. Avez-vous essayé cela?

1

Après avoir cassé ma tête au-dessus pendant 4 heures, voici ce qui a fonctionné pour moi:

document.getElementById(ID).disabled = true|false;    // this works only in IE 
document.getElementbyId(ID).setAttribute('disabled', true|false); // This works both in IE\FF 
Questions connexes