Comunidad de diseño web y desarrollo en internet online

desactivar celdas por un checkbox o por un radio

Citar            
MensajeEscrito el 05 Abr 2014 02:44 pm
buenas a todos necesito desactivar unas celdas dependiendo de lo que se seleccione si es si que las celdas se puedan llenar si es no que se desactiven no importa que se quede visible mientras no se pueda llenar
gracias por adelantado

Por asdiel

5 de clabLevel



Genero:Masculino  

soy programador

chrome
Citar            
MensajeEscrito el 06 Abr 2014 02:47 pm
Tu solicitud es muy general.. si puedo ponerme a darte una solución pero especificala por favor para futuras referencias, gracias.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 22 Abr 2014 02:36 pm
lo que tengo es esto

<script language="javascript" type="text/javascript">
function mostrarr(frm) {
//activamos todos los cuadros de texto
for(o=0;o<frm.elements.length;o++)
frm.elements[o].disabled=false;
//desactivamos los cuadros de texto que correspondan
for(o=1;o<mostrarr.arguments.length;o++)
eval('frm.'+mostrarr.arguments[o]+'.disabled=true');
}
</script>
<th valign="top">Capacitación:</th>

<td><input name="capacitacion" type="radio" value="no" onclick="mostrarr(this.form,'accion_capacitacion','fecha_capacitacion')" />&nbsp;No
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input name="capacitacion" type="radio" value="si" onclick="mostrarr(this.formm,'')" />&nbsp;Si
</td>
<td><input type="text" class="inp-form" name="accion_capacitacion" value=" " maxlength="35"/></td>

<td><input type="text" class="inp-form" name="fecha_capacitacion" onKeyPress="return justNumbers(event);" id="date-pick2"></td>

ahora tengo otro select parecido que desactiva otra cosa pero cuando pongo un no en este no me daja hacer nada en estos campos y cuando pongo no en el otro radio no me deja poner nada en los otro campos que tiene que desavtivar pero en los que les puse aqui si me deja poner algo incluso estando en no espero que esto sea suficiente para que me puedas ayudar gracias

Por asdiel

5 de clabLevel



Genero:Masculino  

soy programador

chrome
Citar            
MensajeEscrito el 23 Abr 2014 03:56 pm
Bueno tu codigo tiene muchos errores, y esta mal structurado. Yo utilice Jquery para realizar tu peticion y aqui ta:

Código HTML :

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<table>
    <tr>
        <th valign="top">Capacitación:</th>

        <td>
            <input name="capacitacion" type="radio" value="no" />&nbsp;No
            <input name="capacitacion" type="radio" value="si" />&nbsp;Si
        </td>
        <td>
            <input type="text" class="inp-form" name="accion_capacitacion" value="" maxlength="35"/>
        </td>
        <td>
            <input type="text" class="inp-form" name="fecha_capacitacion" id="date-pick2">
        </td>
    </tr>
    <tr>
        <th valign="top">wuawuarara</th>

        <td>
            <input name="capacitacion" type="radio" value="no" />&nbsp;No
            <input name="capacitacion" type="radio" value="si" />&nbsp;Si
        </td>
        <td>
            <input type="text" class="inp-form" name="accion_capacitacion" value="" maxlength="35"/>
        </td>
        <td>
            <input type="text" class="inp-form" name="fecha_capacitacion" id="date-pick2">
        </td>
    </tr>
</table>
</body>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function(){
    $("input[type=radio]").on("click", habilitaDeshabilitaInputs);
});

function habilitaDeshabilitaInputs(){
    var inputA = $(this).parent().next().children("input");
    var inputB = $(this).parent().next().next().children("input");

    if($(this).val() == "si"){
        inputA.attr("disabled", true);
        inputB.attr("disabled", true);
    }
    else{
        inputA.attr("disabled", false);
        inputB.attr("disabled", false);
    }
}
</script>
</html>


Este metodo de buscar los elementos se llama traversing, y te lo ahorrarias colocando IDs y class que referenciaran ubicaciones.

Saludos.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 23 Abr 2014 08:31 pm
el codigo me funciona bien en un html donde lo unico que tengo es eso pero cuando lo implemento en mi codigo no me funciona no se si es porque hay que ponerle algo al input text pero hasta eso lo copie por el que me pusiste y no me funciona si fueras tan amable de poner que es lo que hace las lineas de codigo para ver si asi lo puedo entender

Por asdiel

5 de clabLevel



Genero:Masculino  

soy programador

chrome
Citar            
MensajeEscrito el 23 Abr 2014 10:10 pm
Te lo explicare asi:

$(this) == al input check que cambiaste
$(this).parent() == al <td> que contiene el input check
$(this).parent().next() == al siguiente <td> que esta despues del <td> del punto anterior
$(this).parent().next().children("input"); == en el <td> seleccionado, verifica el contenido y busca el (o los) input que esten.


Si la estructura de tu HTML que generas es diferente a esta:

Código HTML :

<td>
            <input name="capacitacion" type="radio" value="no" />&nbsp;No
            <input name="capacitacion" type="radio" value="si" />&nbsp;Si
        </td>
        <td>
            <input type="text" class="inp-form" name="accion_capacitacion" value="" maxlength="35"/>
        </td>
        <td>
            <input type="text" class="inp-form" name="fecha_capacitacion" id="date-pick2">
        </td>


No va a funcionar ;)

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 24 Abr 2014 12:57 pm
ya se donde esta el problema, es que yo tengo los tipo text en otro tr y los ejemplos que me has dado es cuando estan en el mismo tr pero diferente td y yo los tengos en diferentes tr osea estan los input tipo radio abajo los tipos text y mas abajo otro tipo text y lo que me hace falta es que desactive celdas que estan en otro tr si me pudieras decir como hacer para desactivar la celdas de otro tr te lo agradeceria mucho

Por asdiel

5 de clabLevel



Genero:Masculino  

soy programador

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.