Activar / Desactivar botones a partir de 1 textarea (número de carácteres)
Iniciado por
PepBR
, abr 22 2014 13:56
#1 AUTOR PREGUNTA
Publicado 22 abril 2014 - 13:56
Buenos días,
Tengo 1 textarea con 1 botón, pero quiero ampliarlo a 2 (o más). El textarea cuenta los carácteres (en 1 input):
- http://www.solvetic....entras-escribo/
En vez de recoger el valor en 1 input, quiero hacer esto (debajo del textarea):
- Si el número de carácteres es 0 o "" activar 1 botón (Exportar).
- Si el número de carácteres es superior a 0, activar otro botón (Exportar).
Dicho de otra forma, tengo 2 botones Submit:
- Importar: Activo si textarea es 0 o null.
- Exportar: Activo si textarea no está vacía. Al hacer Submit tengo que recoger (getParameter) el texto, No el número de carácteres (pero por curiosidad también me gustaría saberlo jejejejeje).
Relacionado un poco con esto:
1). En Java (fuera del formulario) se puede hacer esto:
Si el usuario ha clicado el botón 'Importar' ...
IMPORTAR
Si el usuario ha clicado el botón 'Exportar' ...
EXPORTAR
Así no tendria que crear nuevos ficheros JSP con código JAVA (acciones redirigidas).
Gracias anticipadas,
PepBR
Tengo 1 textarea con 1 botón, pero quiero ampliarlo a 2 (o más). El textarea cuenta los carácteres (en 1 input):
- http://www.solvetic....entras-escribo/
En vez de recoger el valor en 1 input, quiero hacer esto (debajo del textarea):
- Si el número de carácteres es 0 o "" activar 1 botón (Exportar).
- Si el número de carácteres es superior a 0, activar otro botón (Exportar).
Dicho de otra forma, tengo 2 botones Submit:
- Importar: Activo si textarea es 0 o null.
- Exportar: Activo si textarea no está vacía. Al hacer Submit tengo que recoger (getParameter) el texto, No el número de carácteres (pero por curiosidad también me gustaría saberlo jejejejeje).
Relacionado un poco con esto:
1). En Java (fuera del formulario) se puede hacer esto:
Si el usuario ha clicado el botón 'Importar' ...
IMPORTAR
Si el usuario ha clicado el botón 'Exportar' ...
EXPORTAR
Así no tendria que crear nuevos ficheros JSP con código JAVA (acciones redirigidas).
Gracias anticipadas,
PepBR
3 personas más tuvieron esta duda
Yo también
Preguntas Similares
Esto también te interesa!
#3
Publicado 22 abril 2014 - 17:51
Aquí tienes como poner 2 botones en un textarea (Java info)
#4 AUTOR PREGUNTA
Publicado 22 abril 2014 - 20:17
Buenas tardes,
[color=#ff0000]Charly[/color]: Parto de esto (fichero JSP):
FORM:
TextArea
Submit name="Importar"
Submit name="Exportar"
FIN_FORM
En este enlace:
-
Le falta el TextArea. Y la solución es Javascript (lo que busco es Java, para hacer los if's debajo del formulario (1 por botón)).
Aquí:
-
es 1 input por formulario (yo 1 formulario con 2 inputs (mínimo).
[color=#ff0000]Alberto Serrano[/color]: Busco JSP (formulario con 2 inputs (mínimo)) y Java.
El formulario, textarea y los botones están en 1 fichero JSP,
PepBR
[color=#ff0000]Charly[/color]: Parto de esto (fichero JSP):
FORM:
TextArea
Submit name="Importar"
Submit name="Exportar"
FIN_FORM
En este enlace:
-
Le falta el TextArea. Y la solución es Javascript (lo que busco es Java, para hacer los if's debajo del formulario (1 por botón)).
Aquí:
-
es 1 input por formulario (yo 1 formulario con 2 inputs (mínimo).
[color=#ff0000]Alberto Serrano[/color]: Busco JSP (formulario con 2 inputs (mínimo)) y Java.
El formulario, textarea y los botones están en 1 fichero JSP,
PepBR
#5
Publicado 23 abril 2014 - 00:57
Para lo que quieres hacer no necesitas Java pero sí Javascript porque necesitas ejecutar eventos del lado del cliente, en este caso de tu formulario, quedaría de la siguiente forma, te lo explico por partes:
1- Primero obtienes el valor de tu textarea:
2- Luego condicionas con if:
3- Importante mencionar que tus campos deben estar hidden por defecto:
Al final debería ser algo como esto:
1- Primero obtienes el valor de tu textarea:
var campoarea = document.getElementById("miCampotarea").value;
2- Luego condicionas con if:
if(campoarea==0) { document.getElementById('boton1').style.visibility = 'visible'; } else if(campoarea>0){ document.getElementById('togglee').style.visibility = 'visible';
3- Importante mencionar que tus campos deben estar hidden por defecto:
<input type="button" id="boton1" value="boton1" onclick="action();" style="visibility:hidden;" /> <input type="button" id="boton2" value="boton2" onclick="action();" style="visibility:hidden;" />
Al final debería ser algo como esto:
<script type='Javascript'> function verificar() { var campoarea = document.getElementById("miCampotarea").value; if(campoarea==0) { document.getElementById('boton1').style.visibility = 'visible'; } else if(campoarea>0){ document.getElementById('togglee').style.visibility = 'visible'; } } </script> <input type="button" id="boton1" value="boton1" onclick="verificar();" style="visibility:hidden;" /> <input type="button" id="boton2" value="boton2" onclick="verificar();" style="visibility:hidden;" />
#6 AUTOR PREGUNTA
Publicado 24 abril 2014 - 12:58
Buenos días,
[color=#ff0000]Joel7[/color]: Gracias, creo que es esto pero:
1. Nunca verifico. :-O
2. Mi getParameter siempre es null. Tendría que ser "LoQueSea" (texto).
Algo me falta en el textarea (o en otro sitio) y no lo veo.
Dejo mi código (cuerpo.jsp):
Otra pregunta:
1. ¿Suponiendo que cuando campoarea es superior a 0 tuviera 2 botones activos (Export1 y Export2), desde Java puedo diferenciar entre Exportar1 y Exportar2?
Gracias de nuevo,
PepBR
[color=#ff0000]Joel7[/color]: Gracias, creo que es esto pero:
1. Nunca verifico. :-O
2. Mi getParameter siempre es null. Tendría que ser "LoQueSea" (texto).
Algo me falta en el textarea (o en otro sitio) y no lo veo.
Dejo mi código (cuerpo.jsp):
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Cuerpo</title> <script type="text/javascript"> function getText(){ document.getElementById("prueba").value; } function verificar(){ var campoarea = document.getElementById("prueba").value; out.println("TextArea: "+campoarea); if(campoarea==0){ document.getElementById('Import').style.visibility = 'visible'; } else if (campoarea>0){ document.getElementById('Export1').style.visibility = 'visible'; } } </script> </head> <body> <form action="#" method="post"> <textarea name="prueba" rows="15" cols="1025" id="prueba">Escriu</textarea> <input type="button" name="Import" value="Importar" id="Import" onclick="verificar();" style="visibility:hidden"/> <input type="button" name="Export1" value="Exportar a TXT" id="Export1" onclick="verificar();" style="visibility:hidden"/> </form> <%=request.getParameter("Export1") %> </body> </html>
Otra pregunta:
1. ¿Suponiendo que cuando campoarea es superior a 0 tuviera 2 botones activos (Export1 y Export2), desde Java puedo diferenciar entre Exportar1 y Exportar2?
Gracias de nuevo,
PepBR
#7 AUTOR PREGUNTA
Publicado 25 abril 2014 - 13:46
Buenos días.
Partiendo de la siguiente web:
-
he probado sin lo que me dice joel7 (comentado), y entonces sí funciona el getParameter, apareciendo lógicamente el botón.
cuerpo2.jsp:
Es lo mismo:
type="button" onclick="sumit()
que:
type="submit"
Con el código de Joel7 no aparece ningún botón ni nada del textarea. ¿Alguien ve el por qué? Gracias,
PepBR
Partiendo de la siguiente web:
-
he probado sin lo que me dice joel7 (comentado), y entonces sí funciona el getParameter, apareciendo lógicamente el botón.
cuerpo2.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>cuerpo2.jsp</title> <script type="text/javascript"> function verificar(){ var campoarea = document.getElementById("textarea1").value; out.println("TextArea: "+campoarea); if(campoarea==0){ // Ningún botón visible, por ahora. } else if (campoarea>0){ document.getElementById('Accept').style.visibility = 'visible'; } } </script> </head> <body> <FORM ACTION="cuerpo2.jsp" METHOD="POST"> Please enter your text: <BR> <TEXTAREA NAME="textarea1" ROWS="5"></TEXTAREA> <BR> <INPUT TYPE="submit" VALUE="Aceptar" id="Accept"> <!-- TYPE="button" --!> <!-- onclick="verificar();submit();" style="visibility:hidden" --> </FORM> <% try{ StringBuffer text = new StringBuffer(request.getParameter("textarea1")); int loc = (new String(text)).indexOf('\n'); while(loc > 0){ text.replace(loc, loc+1, "<BR>"); loc = (new String(text)).indexOf('\n'); } out.println(text); }catch (Exception e){}%> </body> </html>
Es lo mismo:
type="button" onclick="sumit()
que:
type="submit"
Con el código de Joel7 no aparece ningún botón ni nada del textarea. ¿Alguien ve el por qué? Gracias,
PepBR
#8
Publicado 25 abril 2014 - 16:09
El código de:
Te doy una recomendación a nivel técnico viendo un poco tus preguntas y de la manera como las has hecho, es que le eches un ojo a las cosas básicas como HTML, un lenguaje menos complicado como PHP y Javascript, esto para que no te des tantos tropiezos con cosas más avanzadas como JSP. Es mi recomendación.
Saludos.
onclick="verificar();debe ir en un botón para accionar lo que esté pasando, te recomiendo que agregues un tercer botón que lo llames verificar y lo presiones para chequear lo que está pasando con tu textarea, dejalo así:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Cuerpo</title> <script type="text/javascript"> function getText(){ document.getElementById("prueba").value; } function verificar(){ var campoarea = document.getElementById("prueba").value; out.println("TextArea: "+campoarea); if(campoarea==0){ document.getElementById('Import').style.visibility = 'visible'; } else if (campoarea>0){ document.getElementById('Export1').style.visibility = 'visible'; } } </script> </head> <body> <form action="#" method="post"> <textarea name="prueba" rows="15" cols="1025" id="prueba">Escriu</textarea> <input type="button" name="Import" value="Importar" id="Import" style="visibility:hidden"/> <input type="button" name="Export1" value="Exportar a TXT" id="Export1" style="visibility:hidden"/> <input type="button" name="verificar" value="Verificar" id="verificar" onclick="verificar();"/> </form> <%=request.getParameter("Export1") %> </body> </html>
Te doy una recomendación a nivel técnico viendo un poco tus preguntas y de la manera como las has hecho, es que le eches un ojo a las cosas básicas como HTML, un lenguaje menos complicado como PHP y Javascript, esto para que no te des tantos tropiezos con cosas más avanzadas como JSP. Es mi recomendación.
Saludos.
#9 AUTOR PREGUNTA
Publicado 02 mayo 2014 - 10:42
Buenos días,
Joel7: He elegido JSP porque engloba distintos lenguajes, aunque sólo utilice Javascript y Java (esto hace que cualquiera pueda mejorarlo, si lo ve necesario). En el último mensaje haces el verificar() con 1 botón visible. En tu primer mensaje (en este post) no (aunque también lo haces en 1 botón), y he seguido probando, hasta que lo he resuelto (proyecto PFC pospuesto ya hasta septiembre): :-)
Es el textarea quien hace verificar() constantemente, no 1 o 2 botones (Joel7 :-P). Por mi parte este post ya está RESUELTO (ver el primer post), :-)
PepBR
Joel7: He elegido JSP porque engloba distintos lenguajes, aunque sólo utilice Javascript y Java (esto hace que cualquiera pueda mejorarlo, si lo ve necesario). En el último mensaje haces el verificar() con 1 botón visible. En tu primer mensaje (en este post) no (aunque también lo haces en 1 botón), y he seguido probando, hasta que lo he resuelto (proyecto PFC pospuesto ya hasta septiembre): :-)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>cuerpo2.jsp</title> <script type="text/javascript"> // Fuente: http://pallieter.org/Projects/insertTab/ function insertTab(o, e) { var kC = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which; if (kC == 9 && !e.shiftKey && !e.ctrlKey && !e.altKey) { var oS = o.scrollTop; if (o.setSelectionRange) { var sS = o.selectionstart; var sE = o.selectionend; o.value = o.value.substring(0, sS) + "\t" + o.value.substr(sE); o.setSelectionRange(sS + 1, sS + 1); o.focus(); } else if (o.createTextRange) { document.selection.createRange().text = "\t"; e.returnValue = false; } o.scrollTop = oS; if (e.preventDefault) { e.preventDefault(); } return false; } return true; } function verificar(){ var campoarea = document.getElementById('textarea1').value.length; // out.println("TextArea: "+campoarea); if (campoarea==null){} if(campoarea==0){ document.getElementById("Cero").style.visibility = "visible"; document.getElementById("Opcion1").style.visibility = "hidden"; document.getElementById("Opcion2").style.visibility = "hidden"; } if (campoarea>0){ document.getElementById("Cero").style.visibility = "hidden"; document.getElementById("Opcion1").style.visibility = "visible"; document.getElementById("Opcion2").style.visibility = "visible"; } } </script> </head> <body> <FORM ACTION="#" METHOD="POST"> <label> <TEXTAREA NAME="textarea1" ROWS="15" COLS="1025" id="textarea1" onkeyup="verificar()" onkeydown="insertTab(this,event); verificar()"></TEXTAREA> </label> <br> <label> <INPUT TYPE="submit" VALUE="Cero" name="0" id="Cero" style="visibility:hidden"> </label> <label> <INPUT TYPE="submit" VALUE="Opción 1" name="1" id="Opcion1" style="visibility:hidden"> </label> <label> <INPUT TYPE="submit" VALUE="Opción 2" name="2" id="Opcion2" style="visibility:hidden"> </label> <!-- TYPE="button" --!> <!-- onclick="verificar();submit();" style="visibility:hidden" --> </FORM> <% try{ // Fuente: http://olgacarreras.blogspot.com.es/2007/02/formulario-con-varios-botones.html if(request.getParameter("0")!=null){ out.println("CERO"); // Submit en el botón 0 (name). }else if(request.getParameter("1")!=null){ out.println("OPCIÓN 1"); // Submit en el botón 1 (name). }else if(request.getParameter("2")!=null){ out.println("OPCIÓN 2"); // Submit en el botón 2 (name). } // Cualquier botón recoge algo del textarea (no null): StringBuffer text = new StringBuffer(request.getParameter("textarea1")); // Se almacena en pru.txt: // Fuente: http://www.coderanch.com/t/391312/java/java/StringBuffer-File %> <%@ page import="java.io.*" %> <%BufferedWriter fichero= new BufferedWriter(new FileWriter("pru.txt")); fichero.write(text.toString()); fichero.flush(); fichero.close(); // Sale por el JSP el contenido del textarea: int loc = (new String(text)).indexOf('\n'); while(loc > 0){ text.replace(loc, loc+1, "<BR>"); loc = (new String(text)).indexOf('\n'); } out.println("<pre>"+text+"</pre>"); }catch (Exception e){}%> </body> </html>
Es el textarea quien hace verificar() constantemente, no 1 o 2 botones (Joel7 :-P). Por mi parte este post ya está RESUELTO (ver el primer post), :-)
PepBR