Отключить все элементы в html

Как отключить все элементы в html через javascript. Самый простой способ...

Ответы

Ответ 1

Я предлагаю сделать это в стиле "Лайтбокс".

Добавьте абсолютный позиционный, прозрачный полноэкранный div-слой над страницей. Таким образом, пользователь не может даже щелкнуть ссылку.

Чтобы дать пользователю визуальную обратную связь о том, что страница отключена, вы можете сделать div e. г. 50% прозрачный черный.

Кстати, здесь также есть jQuery Plugin, который использует подобный метод.

Ответ 2

Самый простой способ - поместить все элементы формы, которые вы хотите отключить внутри <fieldset>, а затем отключить сам набор полей.

Пример: http://jsfiddle.net/xdkf9b8j/1/

Если вам не нужна рамка вокруг набора полей, удалите ее за css.

Ответ 3

Попробуйте это,

function disableForm(theform) {
        if (document.all || document.getElementById) {
            for (i = 0; i < theform.length; i++) {
            var formElement = theform.elements[i];
                if (true) {
                    formElement.disabled = true;
                }
            }
        }
    }

Или вы можете попробовать это тоже, как сказал RaYell

function disableForm() {
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        inputs[i].disabled = true;
    }
    var selects = document.getElementsByTagName("select");
    for (var i = 0; i < selects.length; i++) {
        selects[i].disabled = true;
    }
    var textareas = document.getElementsByTagName("textarea");
    for (var i = 0; i < textareas.length; i++) {
        textareas[i].disabled = true;
    }
    var buttons = document.getElementsByTagName("button");
    for (var i = 0; i < buttons.length; i++) {
        buttons[i].disabled = true;
    }
}

Чтобы отключить всю страницу, вы можете найти здесь ,

Ответ 4

Я не знаю, зачем вам это нужно, но это будет работать:

// this will disable all input elements
var elems = document.getElementsByTagName('input');
var len = elems.length;

for (var i = 0; i < len; i++) {
    elems[i].disabled = true;
}

Ответ 5

Все элементы формы (входы, выделения, текстовые поля) внутри формы доступны через form.elements HTMLCollection, вы можете выполнять итерацию коллекция отключает каждый элемент:

function disableForm(form) {
var length = form.elements.length,
    i;
  for (i=0; i < length; i++) {
    form.elements[i].disabled = true;
  }
}

Примеры использования:

disableForm(document.forms[0]);
disableForm(document.getElementById('formId'));

Ответ 6

Как только мне пришлось создать учебник для моего сайта. Мне нужно было отключить все взаимодействия на странице, исключая некоторые элементы. Для этого я использовал этот метод: Сначала убедитесь, что все привязки событий удалены из ваших элементов страницы. Вы можете сделать это, используя:

   $('*').unbind();

Далее отключите все ссылки на вашей странице:

   $('a').each(function(){$(this).click(function(){return false;})});

и отключите все входы:

   $('input').attr('disabled', true);

Код должен быть выполнен в конце вашего документа. Кстати, вы можете исключить некоторые элементы в селекторе jquery, чтобы поддерживать их.

Ответ 7

Просто и без костылей!

/**
 * Enable/disable all form controlls
 * @param status Status: true - form active, false - form unactive
 */
HTMLFormElement.prototype.setStatus = function (status) {
    for (var i in this.elements) {
        this.elements[i].disabled = !status;
    }
};

// Example:
var my_form = document.getElementById('my_form_with_many_inputs');
my_form.setStatus(false); // Disable all inputs in form
my_form.setStatus(true); // Enable all inputs in form

Ответ 8

Лучший способ - добавить div с наивысшим z-индексом, имеющим ширину: 100% и высоту: 100%. Он будет охватывать всю вашу страницу и сделать все, что невозможно, чтобы отключить виртуальные. Это лучше всего, потому что это не будет используйте любой цикл и любой сложный код.