J'ai cette fonction:
(category=="Cars")?disableDiv("nav_sub_cars", false):disableDiv("nav_sub_cars", true);
4 Réponses :
édité pour refléter les commentaires. P>
Selon le W3C, le code que vous avez affiché doit être correct. L'attribut désactivé est un attribut booléen. L'utilisation de la méthode Dans mon expérience, vous pouvez également obtenir cet effet en utilisant les valeurs de chaîne 'désactivées' ou ''. Cela peut fonctionner car ces valeurs sont contraintes dans une représentation booléenne lorsque le navigateur les rencontre. P> removeattribute () code> peut également être utile. P>
??? J'ai une fonction similiaire qui désactive certaines entrées en frappant le bouton radio. Lorsque Hittin Radio 1, tous les éléments sont désactivés, mais lors de la frappe radio 2, tous sont activés à nouveau. Ça marche très bien. Soin d'expliquer cela?
Différentes entités peuvent effectuer de différentes manières, mais le HTML conforme standard approprié indique que vous devez déclarer un élément désactivé comme désactivé = "désactivé"
Concernant le HTML 4.01 et HTML5 SPECS L'attribut désactivé code> est décrit comme un attribut Boolean code>, lorsque la présence d'un attribut booléen sur un élément représente la valeur réelle et l'absence de L'attribut représente la fausse valeur.
Je pense que cela fait référence à une autre réponse que j'ai donnée où j'ai utilisé vrai / faux. La chose étrange utilise True / False a fonctionné bien pour FF et IE6. Mais utiliser "handicapé" sera vraiment meilleur.
Kieranmaine: La chaîne "désactivée" est incorrecte pour la propriété code> désactivée code>. Il devrait être booléen true code> ou false code>. Voir le commentaire de CMS.
Tom Gullen: désactivé = "désactivé" code> ou juste désactivé code> sont des attributs valides pour les entrées dans HTML.
Tout très intéressant. Merci tim.
@Tim Down - J'ai révisé la réponse de manière à ce que je crois reflète vos commentaires. Pouvez-vous aider à expliquer pourquoi le code de l'utilisateur a publié initialement, qui adhère au W3C, ne fonctionne pas (la raison de la poste)?
g.d.d.c: Le code posté a initialement l'air correct. Il doit y avoir un autre problème à faire avec le reste de la configuration que nous n'avons pas vus. Il existe une question générale que beaucoup de personnes semblent confuses sur la relation entre les attributs et les propriétés, une confusion que je pense est exacerbée par la méthode ATTT () de JQuery's's's's's's's () CODE>, qui dans la majorité des cas définit une propriété , pas un attribut. En général, en raison d'un comportement incorrect dans IE et de simplicité, vous ferez mieux d'oublier les attributs de JavaScript et d'utiliser uniquement des propriétés.
Je pense que vous êtes (toujours) confondre le désactivé code> html attribut b> et le désactivé code> propriété b> Vous obtenez / définir JavaScript à l'aide de élément.disabled [= (true | false)] code>. Voir aussi MSDN .
Essayez .Disabled = null code> ou .RemoVeAttribute ("désactivé") code>. Ma compréhension est que c'est la présence ou l'absence du document code> Désactivé code> qui régit les désindiquences, pas sa valeur. P>
D'accord. Cela fonctionne également: $ ('# mybutton'). Prop ("Disabled", NULL);
Pour désactiver les éléments Vous devez utiliser l'attribut désactivé = "désactivé" code> plutôt que true code> ou false code>. Pour que cela soit activé à nouveau, vous devez supprimer l'attribut désactivé code>. Modifiez votre code comme celui-ci: for (i=0; i<inputs.length; i++){
if (action === false) {
inputs[i].removeAttribute('disabled');
}
else {
inputs[i].setAttribute('disabled', 'disabled');
}
}
for (i=0; i<selects.length; i++){
if (action === false) {
selects[i].removeAttribute('disabled');
}
else {
selects[i].setAttribute('disabled', 'disabled');
}
}
@Marcel KORPEL: WAM: Comment est-ce inutile? Et quel est le problème avec action === true / false code> ???
@ MS2GER: Vous gaspillez mon temps. Ce n'est jamais équivalent! Op était réglage désactivé code> sur true ou false qui était faux. Il peut être défini par désactivé = "désactivé" code> ou supprime l'attribut code> désactivé code> Quelque chose que je fais avec setattribute code> et removeattribute code >.
Ce code, bien que excessivement verbose, est correct - tandis que la réponse «correcte» marquée n'est pas, alors je ne sais pas comment cela s'est retrouvé avec A -1.
Stuart: Cette réponse peut être correcte selon la norme DOM (en dehors de l'erreur Copy / Coller dans la première section), mais vous éteignez beaucoup mieux à l'aide de la propriété code> désactivée > à la place.
Plus de code nécessaire. Tout semble correct et la définition de la propriété désactivée code> d'un désactivé code> dans la source HTML. P>
+1. Je ne comprends pas pourquoi cette réponse était en bas, les autres réponses confondent la propriété avec l'attribut.
Il est temps de passer à jQuery. C'est toute la rage avec les enfants ces jours-ci.
JQuery serait trop exagéré pour cela.
Assurez-vous que votre entrée d'action est le Boolean Vrai ou False et non la chaîne «VRAI» ou «FALSE», cela aurait très bien pu être votre problème.
JQuery, pour cela? Jamais.