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?
Recibe ayuda de expertos
Es gratis y fácil
Respuestas, votos y comentarios
Recibe puntos, vota y da la solución
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?
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');
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
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';
}
}
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
function deshabilitar() {
var inputs = document.querySelectorAll("input[type='text']"), input;
for (input in inputs) {
if (inputs.hasOwnProperty(input)) {
inputs[input].disabled = true;
}
}
}