172 votes

désactiver tous les éléments de formulaire à l’intérieur de la div

y a-t-il un moyen de désactiver tous les champs (textarea/textfield/option/entrée/case/soumettre etc.) sous une forme en disant seulement le parent nom div en jquery/javascript ?

275voto

Andrew Whitaker Points 58588

Essayez d’utiliser le sélecteur :input , avec un sélecteur parent:

 $("#parent-selector :input").attr("disabled", true);
 

161voto

Trevor Points 6105
$('#mydiv').find('input, textarea, button, select').attr('disabled','disabled');

32voto

Optimus Prime Points 3070

Pour jquery 1.6+, utilisez .prop() au lieu de .attr() ,

 $("#parent-selector :input").prop("disabled", true);
 

ou

 $("#parent-selector :input").attr("disabled", "disabled");
 

5voto

Syed Nasir Abbas Points 401
    $(document).ready(function () {
        $('#chkDisableEnableElements').change(function () {
            if ($('#chkDisableEnableElements').is(':checked')) {
                enableElements($('#divDifferentElements').children());
            }
            else {
                disableElements($('#divDifferentElements').children());
            }
        });
    });

    function disableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = true;

            disableElements(el[i].children);
        }
    }

    function enableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = false;

            enableElements(el[i].children);
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X