Foros del Web » Programando para Internet » Javascript »

desactivar campo después de evento...

Estas en el tema de desactivar campo después de evento... en el foro de Javascript en Foros del Web. Cordiales saludos... Os agradecería que me ayudárais con una duda que tengo sobre un JScript que activa/desactiva campos de acuerdo a la selección en un ...
  #1 (permalink)  
Antiguo 09/04/2010, 03:09
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
desactivar campo después de evento...

Cordiales saludos...

Os agradecería que me ayudárais con una duda que tengo sobre un JScript que activa/desactiva campos de acuerdo a la selección en un selectbox.

Este mi JS:
Código PHP:
<script language="JavaScript">
function 
activar(){
        if (
document.form.selectbox.value == '-- seleccione uno --' {
        
document.form.campo1.disabled true;
        
document.form.campo2.disabled true;
        
document.form.campo3.disabled true;
        
document.form.campo4.disabled true;
        } else {
        
document.form.campo1.disabled false;
        
document.form.campo2.disabled false;
        
document.form.campo3.disabled false;
        
document.form.campo4.disabled false;
                }
        }
</script> 
Y mi formulario:
Código PHP:
<form name="form">
<
select name="campo1[]" onChange="activar()">
<
option value="-1">-- seleccione uno --</option>
<
option value="1">Rojo</option>
<
option value="2">Verde</option>
<
option value="3">Amarillo</option>
</
select>
<
input type="text" name="campo1">
<
input type="text" name="campo2[]">
<
input type="text" name="campo3">
<
input type="text" name="campo4">
select
</form
Cómo véis el <select> y algunbos campos contienen un '[]' en su nombre. Así, cómo puedo decirle al JS que ese nombre contiene un '[]'?....

He intentado agregando el '[]' en el JS pero no logro que funcione.

Gracias por vuestra ayuda nuevamente.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 09/04/2010, 04:33
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: desactivar campo después de evento...

Hola

No me queda claro que es lo que pretendes. Veamos si es algo como esto

Código Javascript:
Ver original
  1. <script language="javascript">
  2. function activar(val){
  3. var campText = document.getElementById('frm').getElementsByTagName('input');
  4. for (i = 0; i < campText.length; i++) {
  5. if (val == '') {
  6. campText[i].disabled = true;
  7. } else {
  8. campText[i].disabled = false;
  9. }
  10. }
  11.         }
  12. </script>  
  13.  
  14. <form name="form" id="frm">
  15. <select name="campo1[]" id="campo1[]" onChange="activar(this.options[this.selectedIndex].value)">
  16. <option value="">-- seleccione uno --</option>
  17. <option value="1">Rojo</option>
  18. <option value="2">Verde</option>
  19. <option value="3">Amarillo</option>
  20. </select>
  21. <input type="text" name="campo1">
  22. <input type="text" name="campo2[]">
  23. <input type="text" name="campo3">
  24. <input type="text" name="campo4">
  25. </select>
  26. </form>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 09/04/2010, 05:06
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: desactivar campo después de evento...

Gracias Adler...

Bien, lo que intento hacer con este script es que si en el <select> tengo seleccionado la opcion "-- seleccione uno --", los campos del formulario se activen. Si por el contrario, en ese mismo <select> selecciono otro valor de la lista que me proporciona, los campos se deben desactivar (disabled=true;) para que no se permita introducir datos.

En tu código, se bloquean todos los 'inputs', pero hay alguna manera de bloquear los "name='lo que sea'"?... De hecho hay algunos radiobuttons, y text-area que debo bloquer también; es decir, discriminar los campos a bloquear?
__________________
Andrew :P

Última edición por andrewp; 09/04/2010 a las 05:16 Razón: Rectifico respuesta...
  #4 (permalink)  
Antiguo 09/04/2010, 07:35
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: desactivar campo después de evento...

Hola

A ver si es a esto a lo que te refieres

Código Javascript:
Ver original
  1. function activar(val){
  2. var campText = document.getElementById('contenedor').getElementsByTagName('*');
  3. for (i = 0; i < campText.length; i++) {
  4. if (val == '') {
  5. campText[i].disabled = false;
  6. } else {
  7. if (campText[i].id != '') continue;
  8. campText[i].disabled = true;
  9. }
  10. }
  11.         }
  12.  
  13.  
  14. <form name="form">
  15. <select name="campo1[]" id="campo1[]" onChange="activar(this.options[this.selectedIndex].value)">
  16. <option value="">-- seleccione uno --</option>
  17. <option value="1">Rojo</option>
  18. <option value="2">Verde</option>
  19. <option value="3">Amarillo</option>
  20. </select>
  21. <div id="contenedor">
  22. <input type="text" name="campo1">
  23. <input type="text" name="campo2" id="campo2" value="Este no se desabilitar&aacute;">
  24. <input type="text" name="campo3">
  25. <input type="text" name="campo4">
  26. <br />
  27. <input type="radio" name="rad[]" />
  28. <input type="radio" name="rad[]" />
  29. <br />
  30. <textarea name="txtarea">Alguna cadena</textarea>
  31. <br />
  32. <input type="text" name="campo5" id="campo5" value="Este no se desabilitar&aacute;">
  33. </div>
  34. </form>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: desactivar, eventos, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:33.