Отключить все элементы в 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%. Он будет охватывать всю вашу страницу и сделать все, что невозможно, чтобы отключить виртуальные. Это лучше всего, потому что это не будет используйте любой цикл и любой сложный код.