disculpen alguien me podría decir como controlo en un textarea
que un usuario pueda introducir solo las lineas que yo quiero
por ejemplo 5 filas y luego de esto no pueda seguir escribiendo otras lineas
| |||
controlar un <TEXTAREA> disculpen alguien me podría decir como controlo en un textarea que un usuario pueda introducir solo las lineas que yo quiero por ejemplo 5 filas y luego de esto no pueda seguir escribiendo otras lineas |
| |||
Se me ocurre una manera. Haber que os parece: Código PHP: |
| |||
Lo más utilizado y recomendado es como dijo tunait, controlar el número de caracteres en vez de número de líneas. Este código que te pondré te podría complicar más, pero puede resolverte si es urgentísima la situación. En IE:
Código:
Nota: La palabra javascript va junta, la puse en roja para que el foro no la separara. El textarea está imitado a 3 líneas en un textarea de 4 y cada una tiene límite de 30 caracteres . Puedes escribir el límite que deseas. Repito...en mi opinión también, más utilizado, estético, llevadero y conocido es restringir el número de caracteres en vez del num. de líneas. <html> <head> <title>blah</title> <script language="javascript"> //Desarrollado por: J. Markus //Adaptado por: I. Y. Cruz //06/2002 function mitodo(textarea,maxlength, maxLines) { var elinput = textarea.value; var largo = elinput.length; var dlineas = elinput.split("\n"); var nlineas = dlineas.length; var lineaactual = eval(parseInt(dlineas.length)-1); var string = dlineas[lineaactual]; var elultimo = string.charAt(eval(largo-1)); var elanterior = ""; if (nlineas > maxLines){ lineaactual = maxLines;} for(var i=0;i<lineaactual;i++){ elanterior +=dlineas[i];} var keyCode = document.layers ? event.which : event.keyCode; if (keyCode==13){ if (dlineas.length >= eval(maxLines+1)){ textarea.value = elinput.substr(0, eval(largo-2)); textarea.value = elanterior.substring(0,eval(elanterior.length-1)); } else { return true; } } if (string.length > maxlength - 1) textarea.value = elanterior +string.substr(0, maxlength); return; } </script> </head> <body> <form name="miforma"> <textarea name="nombredetextarea" cols="40" rows="4" onkeyup="javascript:mitodo(nombredetextarea,30,3);"></textarea><br> </form> </body> </html>
__________________ Yanira Última edición por Yanix; 13/01/2003 a las 07:39 |
| |||
gracias a todos por la ayuda se los agradesco. con la ultima forma funciona bien. auque el codigo es un poco complicado. lo unico que le modifique es que no salga la barra scrool de la derecha con STYLE="overflow: hidden". gracias.. |
| |||
<html> <head> <title>blah</title> <script language="jscript"> //Desarrollado por: J. Markus //Adaptado por: I. Y. Cruz //06/2002 function mitodo(textarea,maxlength, maxLines) { var elinput = textarea.value; var largo = elinput.length; var dlineas = elinput.split("\n"); var nlineas = dlineas.length; var lineaactual = eval(parseInt(dlineas.length)-1); var string = dlineas[lineaactual]; var elultimo = string.charAt(eval(largo-1)); var elanterior = ""; if (nlineas > maxLines){ lineaactual = maxLines;} for(var i=0;i<lineaactual;i++){ elanterior +=dlineas[i];} var keyCode = document.layers ? event.which : event.keyCode; if (keyCode==13){ if (dlineas.length >= eval(maxLines+1)){ textarea.value = elinput.substr(0, eval(largo-2)); textarea.value = elanterior.substring(0,eval(elanterior.length-1)); } else { return true; } } if (string.length > maxlength - 1) textarea.value = elanterior +string.substr(0, maxlength); return; } </script> </head> <body> <form name="miforma"> <textarea STYLE="overflow:hidden" name="nombredetextarea" cols="40" rows="4" onkeyup="mitodo(nombredetextarea,30,3);"></textarea><br> </form> </body> </html> bueno en algunos exploradores 5 no me estava funcionando. y le cambie javascript por jscript de Ms |