Foros del Web » Programando para Internet » Javascript »

textField enabled con checkbox

Estas en el tema de textField enabled con checkbox en el foro de Javascript en Foros del Web. Hola buenas a todos! Resulta que tengo una tabla con 3 columnas. La primera columna esta compuesta por checkboxes, la segunda por textFields y la ...
  #1 (permalink)  
Antiguo 14/04/2008, 08:16
 
Fecha de Ingreso: octubre-2007
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
textField enabled con checkbox

Hola buenas a todos!

Resulta que tengo una tabla con 3 columnas. La primera columna esta compuesta por checkboxes, la segunda por textFields y la tercera por un staticTexts.
Basandome en la siguiente pagina (Table Component Sample Visual Web Project for NetBeans IDE 6.0) he conseguido que al hacer click en uno de los checkboxes se me marque la linea que quiero yo.

http://blogs.sun.com/divas/category/NetBeans+Visual+Web+Pack

Mi problema esta en que me gustaría saber como hacer para que cuando haga click en uno de los checkboxes se me habilite (enabled) el correspondiente textField(en un principio estan deshabilitadas). Si utilizo la funcion valuechangelsitener del checkbox, al hacer submit la pagina, se me habilitan todos los textFields y ademas el checkbox que he clickado me aparece sin el click.

He pensado que haciendo un script podria ser posible, para no tener que hacer un submit a la página, pero resulta que no tengo ni idea. Si alguien tiene esta solucion me gustaría que me respondiese.

Muchisimas gracias!!!
  #2 (permalink)  
Antiguo 14/04/2008, 08:47
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: textField enabled con checkbox

Hola puntapari

A ver si te sirve esto:

Código:
<tr>
<td><input type="checkbox" onclick="habilitar(this)" /></td>
<td><input type="text" disabled="disabled" /></td>
<tr>
Código:
function habilitar(obj) {
  fila = obj.parentNode.parentNode;
  fila.getElementsByTagName('input')[1].disabled = !obj.checked;
}
Saludos,
  #3 (permalink)  
Antiguo 14/04/2008, 09:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: textField enabled con checkbox

Hola buenas!

Primeramente darte las gracias por responderme. Lo he intentado y no me funciona. Te adjunto mi codigo para poder facilitar la idea:

Código:
<ui:script binding="#{Page2.script4}" id="script4">
                        function habilitar(obj) {
                        fila = obj.parentNode.parentNode;
                        fila.getElementsById('input')[1].disabled = !obj.checked;
                        }
                        
                    </ui:script>

Código:
<ui:body binding="#{Page2.body1}" id="body1" style="-rave-layout: grid">
                    <ui:form binding="#{Page2.form1}" id="form1">
                        <ui:table augmentTitle="false" binding="#{Page2.table1}" id="table1" style="left: 24px; top: 96px; position: absolute" width="432">
                            <ui:tableRowGroup binding="#{Page2.tableRowGroup1}" headerText="VINOS" id="tableRowGroup1" rows="10"
                                              selected="#{Page2.selectedState}" sourceData="#{Page2.vinosDataProvider}" sourceVar="currentRow">
                                <ui:tableColumn binding="#{Page2.tableColumn19}" id="tableColumn19" onClick="setTimeout('initAllRows()', 0)"
                                                selectId="checkbox1" spacerColumn="true" width="20">
                                    <ui:checkbox binding="#{Page2.checkbox1}" id="checkbox1" onClick="habilitar(this)"  selected="#{Page2.selected}" selectedValue="#{Page2.selectedValue}"/>
                                </ui:tableColumn>
                                <ui:tableColumn binding="#{Page2.tableColumn3}" id="tableColumn3">
                                    <ui:imageHyperlink align="middle" binding="#{Page2.imageHyperlink1}" id="imageHyperlink1"
                                                       imageURL="/pics/im#{currentRow.value['producto.id_prod']}.jpg" text=""/>
                                </ui:tableColumn>
                                <ui:tableColumn binding="#{Page2.tableColumn2}" id="tableColumn2" sort="producto.nombre">
                                    <ui:staticText binding="#{Page2.staticText2}" id="staticText2" text="#{currentRow.value['producto.nombre']}"/>
                                </ui:tableColumn>
                                <ui:tableColumn binding="#{Page2.tableColumn13}" id="tableColumn13" selectId="textField1" width="5">
                                    <ui:textField binding="#{Page2.textField1}" columns="2" disabled="true" id="textField1" text="#{Page2.NUnidades}"/>
                                </ui:tableColumn>

Agrego asimismo, un script que si que me funciona y no tiene nada que ver pero por si es posible para la compresion:

Código:
<ui:script binding="#{Page2.script4}" id="script4">
                        function habilitar(obj) {
                        fila = obj.parentNode.parentNode;
                        fila.getElementsById('input')[1].disabled = !obj.checked;
                        }
                        
                    </ui:script>

Muchisimas gracias!
  #4 (permalink)  
Antiguo 14/04/2008, 09:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: textField enabled con checkbox

Perdon me he equivocado al copiar el segundo script.

Código:
 <ui:script binding="#{Page2.script3}" id="script3"><![CDATA[
                        /* ----- Functions for Table Actions ----- */
                        /*
                        * Initialize all rows of the table when the state
                        * of selected rows changes.
                        */
                        function initAllRows3() {
                        var table = document.getElementById("form1:table3");
                        table.initAllRows();
                        }
                    ]]></ui:script>
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 22:51.