Twitter

IE 6, submit et disabled


Mémo :
Lorsque vous voulez faire en sorte de désactiver le bouton submit d'un formulaire lorsque celui-ci a été cliqué, n'oubliez pas que sous ie6, cela annule la soumission du formulaire. Tous les codes ci-dessous sont concernés.

?View Code JAVASCRIPT
// Code exécuté au chargement de la page
document.getElementById('id_du_bouton_submit').onclick = function() {
this.value = 'Processing ...';
this.disabled = !this.disabled;
}

Et :

?View Code JAVASCRIPT
// Code exécuté au chargement de la page
document.getElementById('d_du_bouton_submit').onclick = function() {
this.value = 'Processing ...';
this.disabled = !this.disabled;
return true;
}

Et même :

<input type="submit" id="id_du_bouton_submit" name="jolie_bouton_submit" value="soumettre" onclick="this.disabled = !this.disabled; return true;" />

Inutile de tester avec jQuery(et avec bind), le résultat sera le même. Voilà c'est dit.

7 Comments to IE 6, submit et disabled

  1. 4 juin 2007 at 18 h 07 min | Permalink

    Hmm, super :)

    Par contre j’ai pu lire récemment un article sur le Javascript non intrusif et la création d’un fonction AddEvent() !

    Faudrais essayer de l’appliquer sur cela aussi…

    Cela devrait être un style :
    [code]
    function addEvent(obj, evType, fn){
    if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
    } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
    } else {
    return false;
    }
    }
    [/code]

    On charge les événements :
    [code]
    addEvent(submit, 'click', fonction_du_submit);
    [/code]

    As-tu déjà pu tester une chose pareille ??

    G.

  2. Thanh's Gravatar Thanh
    4 juin 2007 at 18 h 37 min | Permalink

    Yep Groumphy, les deux fonctions citées sont dans un fichier externe et appelées lors du window.onload. J’ai également essayé avec jQuery (bind) qui permet de faire le addEvent, pas mieux : c’est sans issue :)

  3. 4 juin 2007 at 19 h 35 min | Permalink

    Y a pas à dire, on est gâté avec IE :)
    Luv’ dev web… mais pas quand faut passer aux débugs IE ::whistle

  4. 4 juin 2007 at 19 h 45 min | Permalink

    Déjà eu le problème, on voulait récupérer la valeur du bouton submit cliqué (oui dans le cas où on a plusieurs boutons submit quoi)…
    Ben ta solution a l’air pas mal !

    Mais nous, on avait submitté le formulaire avec un
    myForm.submit();
    (et pour ce qui est de récupérer le bouton cliqué, on a dynamiquement regénéré l’URL de la propriété action du formulaire)

  5. 4 juillet 2007 at 19 h 14 min | Permalink

    Sauf si tu valides le formulaire avant de désactiver le bouton avec un this.form.submit(); par exemple ;-)

  6. Philippe's Gravatar Philippe
    9 juillet 2007 at 15 h 06 min | Permalink

    Bonjour,

    Je suis en train de développer un outil web où j’aimerais désactiver un bouton après l’avoir clické. J’ai beau mettre disabled= »true » pour ce bouton, juste pour tester, mais le bouton n’est réellement désactivé que sur Firefox et non sur IE ; en voici le code html :

    Merci de m’aider.:-)

  7. 2 juillet 2009 at 13 h 49 min | Permalink

    Essaie sans les apostrophes :

    disabled=true;

    Mais je suis pessimiste, j’ai déjà rencontré ce problème et apparement sous IE6, pas moyen de changer l’etat d’un input si celui ci est spécifié dans le HTML … Je cherche …

Saisir un commentaire

Vous pouvez utilisez les balises HTML suivantes, ainsi que les attributs associés : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Photographie

Tranches de vie on Facebook