¿Cómo podemos desactivar todos los elementos de HTML a través javascript.The forma más fácil ...desactivar todos los elementos de HTML
Respuesta
que sugieren que hacerlo de la "mesa de luz" camino al estilo.
Agregue una capa div de posición completa, transparente y de pantalla completa sobre la página. De esta manera, el usuario ni siquiera puede hacer clic en un enlace.
Para dar al usuario un comentario visual de que la página está deshabilitada, puede hacer la división. gramo. 50% negro transparente.
BTW, aquí hay también un jQuery Plugin que utiliza una técnica similar.
No sé por qué se necesita eso, pero esto funcionará:
// 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;
}
Prueba de esto,
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;
}
}
}
}
o bien puede probar esto también, como dijo 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;
}
}
Para desactivar toda la página se puede encontrar algo de información here,
Todos los elementos del formulario (entradas, selecciona, áreas de texto) dentro de un formulario, son accesibles a través de la form.elements HTMLCollection, se puede recorrer la colección desactivación de cada elemento:
function disableForm(form) {
var length = form.elements.length,
i;
for (i=0; i < length; i++) {
form.elements[i].disabled = true;
}
}
ejemplos de uso:
disableForm(document.forms[0]);
disableForm(document.getElementById('formId'));
indicando Tal vez lo que es obvio, pero la misma función (ajustado) se puede utilizar para volver a habilitar la forma. 'function enableForm (form) {var length = form.elements.length, i; for (i = 0; i
Una vez tuve que crear un tutorial para mi sitio web. Necesitaba deshabilitar todas las interacciones en una página excluyendo algunos elementos. Para hacerlo, utilicé este método: Primero asegúrese de eliminar todos los enlaces de eventos de los elementos de su página. Usted puede hacer esto mediante el uso de:
$('*').unbind();
Siguiente desactivar todos los enlaces de una página:
$('a').each(function(){$(this).click(function(){return false;})});
y desactivar todas las entradas:
$('input').attr('disabled', true);
El código debe ser ejecutado al final de su documento. Por cierto, puede excluir algunos elementos dentro del selector de jquery para mantenerlos activos.
o puede ejecutar esto en los '$ (function() {})' manejador de listas de DOM. –
La manera más fácil es colocar todos los elementos de formulario que desee deshabilitar dentro de un <fieldset>
y luego deshabilitar el conjunto de campos.
Un ejemplo: http://jsfiddle.net/xdkf9b8j/1/
Si no desea que el borde alrededor del conjunto de campos, eliminarlo por css.
Tenga en cuenta que en IE, campos de texto están en gris, pero todavía puede editar. –
La mejor manera es agregar un div con el índice z más alto con ancho: 100% y alto: 100%. Cubrirá toda su página y hará que todo lo que no se pueda hacer se deshabilite virtualmente. Es mejor, porque lo hará no use ningún bucle ni ningún código complejo.
Justo y sin muletas!
/**
* 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
- 1. ¿Cómo puedo desactivar todos los eventos táctiles en todos los elementos secundarios de un ViewGroup?
- 2. Cómo desactivar/desactivar algunos de los elementos de GtkMenu
- 3. seleccionar todos los elementos HTML basado en el valor rel
- 4. jQuery obtener sólo todos los elementos HTML con ID
- 5. Obtener todos los elementos iframe
- 6. deshabilitar todos los elementos de A (URL) en DIV
- 7. Cómo desactivar ReSharper "Buscar todos los usos"
- 8. Desactivar todos los índices no agrupados
- 9. Cómo desactivar todos los sonidos en Android
- 10. ListBox seleccione todos los elementos
- 11. Activar o desactivar los elementos de formulario en jQuery
- 12. desactivar todos los elementos de la página con la función modal utilizando jQuery
- 13. ¿Cómo puedo desactivar todos los elementos dentro de un fieldset en jQuery?
- 14. Jsoup seleccione e iterar todos los elementos
- 15. Obtener todos los elementos de opciones seleccionados de todos los elementos seleccionados en un formulario
- 16. ¿Cómo se especifican los atributos de fuente para todos los elementos en una página web html?
- 17. ¿Cómo eliminar todos los elementos de ListBox?
- 18. Eliminar todos los elementos de una lista
- 19. Eliminar todos los elementos dentro de linearlayout
- 20. Seleccionar todos los elementos dentro de ListView
- 21. Obtener todos los elementos de un ArrayAdapter
- 22. jQuery selecciona todos los elementos dentro de elementos principales particulares
- 23. ¿Cómo multiplico todos los elementos en una colección con todos los elementos en otra colección?
- 24. ¿Cómo activar/desactivar los elementos de la barra de herramientas?
- 25. RASTREO de TODOS los elementos cliqueados mediante JavaScript
- 26. ¿Cómo puedo desactivar todos los eventos de setTimeout?
- 27. Posicionamiento CSS Sobre todos los elementos
- 28. Obtener todos los elementos del hilo Cola
- 29. Cómo desencadenar eventos en todos los elementos
- 30. Determinar todos los elementos secundarios ancho
Desafortunadamente esto no ayuda si se puede obtener el foco de uno de los elementos detrás de la div (tabulando a ella o con una combinación de teclas) – Darren
@Darren - Sí, para simular correctamente un diálogo modal, lo que tiene que atrape todos los eventos del teclado, especialmente las teclas Tab, para evitar que el foco salga del elemento de diálogo. Es posible que posiblemente restablecer todos los elementos de lengüeta capaz de 'tabindex = '- 1'', pero luego se va a restablecer a todos de vuelta después del cierre de la ventana de diálogo. –