отключить все элементы формы внутри div - PullRequest
150 голосов
/ 13 марта 2011

есть ли способ отключить все поля (textarea / textfield / option / input / checkbox / submit и т. Д.) В форме, сообщив только имя родительского div в jquery / javascript?

Ответы [ 11 ]

253 голосов
/ 13 марта 2011

Попробуйте использовать селектор :input вместе с родительским селектором:

$("#parent-selector :input").attr("disabled", true);
149 голосов
/ 13 марта 2011
$('#mydiv').find('input, textarea, button, select').attr('disabled','disabled');
29 голосов
/ 28 августа 2013

Для jquery 1.6+ используйте .prop() вместо .attr(),

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

или

$("#parent-selector :input").attr("disabled", "disabled");
5 голосов
/ 20 февраля 2013
    $(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);
        }
    }
1 голос
/ 08 декабря 2018

Как насчет этого, используя только атрибут HTML 'disabled'

<form>
 <fieldset disabled>
  <div class="row">
   <input type="text" placeholder="">
   <textarea></textarea>
   <select></select>
  </div>
  <div class="pull-right">
    <button class="button-primary btn-sm" type="submit">Submit</button>
  </div>
 </fieldset>
</form>

Просто, если отключить в наборе полей все поля внутри этого набора полей, отключить.

$('fieldset').attr('disabled', 'disabled');
1 голос
/ 11 сентября 2018

Просто эта строка кода отключит все элементы ввода

$('#yourdiv *').prop('disabled', true);
1 голос
/ 21 сентября 2015

Я использую функцию ниже в различных точках. Работает в элементах div или button в таблице, если используется правильный селектор. Просто ": кнопка" не включится для меня.

function ToggleMenuButtons(bActivate) {
    if (bActivate == true) {
        $("#SelectorId :input[type='button']").prop("disabled", true);
    } else {
        $("#SelectorId :input[type='button']").removeProp("disabled");
    }
}
0 голосов
/ 16 июля 2018

Только текстовый тип

$(".form-edit-account :input[type=text]").attr("disabled", "disabled");

Только тип пароля

$(".form-edit-account :input[type=password]").attr("disabled", "disabled");

Только тип электронной почты

$(".form-edit-account :input[type=email]").attr("disabled", "disabled");
0 голосов
/ 07 декабря 2017

Использование класса CSS для предотвращения редактирования элементов Div

CSS:

.divoverlay
{
position:absolute;
width:100%;
height:100%;
background-color:transparent;
z-index:1;
top:0;
}

JS:

$('#divName').append('<div class=divoverlay></div>');

Или добавьте имя класса в тег HTML.Это предотвратит редактирование элементов Div.

0 голосов
/ 17 ноября 2017

Для меня принятый ответ не сработал, так как у меня были некоторые скрытые поля asp net, которые также были отключены, поэтому я решил отключить только видимые поля

//just to save the list so we can enable fields later
var list = [];
$('#parent-selector').find(':input:visible:not([readonly][disabled]),button').each(function () {
    list.push('#' + this.id);
});

$(list.join(',')).attr('readonly', true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...