entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Obtener elementos del DOM en JavaScript filtrando por etiqueta

Tengo un formulario con cien controles input y deseo evitar que el usuario pueda agregar texto en ellos antes de que se cumpla cierta condición.

¿Cómo puedo deshabilitarlos dinámicamente?

5 Respuestas

0voto

daniel_garcia Puntos1440

Con

var inputs = document.getElementByTagName('input');

Claro que con jQuery sería más facil

var inputs = $('input');

O podrías hacer tu propia función

var tag = function(e) {
    return document.getElementByTagName(e);
};
// Se usaa
var inputs = tag('input');

2votos

diego_romero comentado

Hay que tener en cuenta que con esto solo se seleccionan.. no se deshabilitan

2votos

jaime_pastor Puntos440

Con lo que te ha respondido Daniel García ya tienes seleccionados todos los elementos de tipo 'input' y ahora sólo tienes que modificar la propiedad disabled:

element.disabled = ''; // habilitado
element.disabled = 'disabled'; // deshabilitado

Por otro lado, una opción más compleja es suscribirse a todos los eventos de ratón ('click') y comprobar en la función de callback si el botón puede ser pulsado o no.

Para aplicar las clases CSS a los botones deshabilitados puedes utilizar la pseudoclase disabled.

input[type="button"]:disabled

1voto

lucianolagassa Puntos820

hola, te paso un codigo que te oculta todos los elementos del formulario que vos le indiques via javascript, no esta probado pero esta basado en un codigo que uso para validar formularios.

function Ocultar(formulario)
{
 var i=0;
 var s=formulario.elements.length-1;
 for (i=0;i<=s;i++)
 {
  formulario.elements[i].style.display='none';
 }
}

function Mostrar(formulario)
{
 var i=0;
 var s=formulario.elements.length-1;
 for (i=0;i<=s;i++)
 {
  formulario.elements[i].style.display='bloc';
 }
}

0voto

Si son imput expecificos de un area usa

<input class="mi_clase" type="text" value="3" />

inputs = $('input.mi_clase')

Asi solo seleccionas los que estan involucrados en el area correcpondiente.
http://community.logicalbricks.com/node/70

1voto

sebaperez Puntos920
function deshabilitar() {
var inputs = document.querySelectorAll("input[type='text']"), input;
for (input in inputs) {
if (inputs.hasOwnProperty(input)) {
inputs[input].disabled = true;
}
}
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta