Foros del Web » Programando para Internet » Javascript »

ayuda con este codigo urgente

Estas en el tema de ayuda con este codigo urgente en el foro de Javascript en Foros del Web. Tengo el codigo que detallo mas abajo pero tengo un problema , en sintesis lo que hace este codigo es contar los caracteres de un ...
  #1 (permalink)  
Antiguo 16/11/2002, 12:58
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 9 meses
Puntos: 0
ayuda con este codigo urgente

Tengo el codigo que detallo mas abajo pero tengo un problema , en sintesis lo que hace este codigo es contar los caracteres de un textarea y limitarlo , es decir no me deja poner mas de xxx
caracteres , el tema es que me lo limita bien es decir cuando llega a la cantidad deseada no deja escibir mas , per o lo que no logro es que el contador se vaya reduciendo a medida que se vaya escribiendo , cuando quiero escribir dentro del textarea el explorador me dice que hay un error en la linea 12 que reduce.com no es un objeto , por favor si alguien me puede dar una mano como solucionarlo, ademas quisiera saber como puedo repetir este codigo en el mismo formulario en el campo "copete" que es la introduccion de una noticia, gracias paso el codigo

<html>
<head>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.

function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto)
que.value=v.substring(0,cuanto)
else
document.reduce.cont.value=cuanto-v.length / esta es la linea que me tira error/
}
</script>
</head>
</body>
<form method="POST" action="agrega_noticia.asp">

<p><br>
<form method="POST" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40">
</p>
</body>
<form name="reduce">
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="registro" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</form>
</body>
</head>
</html>
  #2 (permalink)  
Antiguo 16/11/2002, 13:46
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola.

Bueno, varias cosas que te sobran y que te faltan.

1.- No abres el <body>. Fijate que lo estas cerrando la primera vez que le haces refencia
Cita:
...
</script>
</head>
</body>
<form method="POST" action="agrega_noticia.asp">
...
2.- Repites dos veces esta línea:

<form method="POST" action="agrega_noticia.asp">

Una sobra.

3.- Cierras el body antes de hora.
Cita:
...
<input type="text" name="copete" size="40">
</p>
</body>
<form name="reduce">
...
4.- No cierras el primer form.

Cita:
...
<input type="text" name="copete" size="40">
</p>
</body>
<form name="reduce">
...
Esto cámbialo por:
Cita:
...
<input type="text" name="copete" size="40">
</p>
</form>
<form name="reduce">
...
Bueno, concluyendo. El código corregido es este:

<html>
<head>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.

function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto) que.value=v.substring(0,cuanto)
else document.reduce.cont.value=cuanto-v.length
}
</script>
</head>
<body>

<p><br>
<form method="POST" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40">
</p>
</form>
<form name="reduce">
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="registro" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</form>
</body>
</head>
</html>
  #3 (permalink)  
Antiguo 16/11/2002, 14:01
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Para limitar el campo copete:

<input type="text" name="copete" size="40" onKeyDown="limite(this,200)" onKeyUp="limite(this,200)">
El 200 lo cambias por el límite que le quieras poner.

Pero esto te hará funcionar mal el contador del textarea. Para solucionarlo, tendrías que repetir la función. O quitar el contador si no lo usas.

Ejemplo 1. Repitiendo la funcion:

<html>
<head>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.

function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto) que.value=v.substring(0,cuanto)
else document.reduce.cont.value=cuanto-v.length
}
function limite2(que,cuanto)
{
var v=que.value
if(v.length>cuanto) que.value=v.substring(0,cuanto)
else document.reduce2.cont2.value=cuanto-v.length
}

</script>
</head>
<body>

<p><br>
<form method="POST" action="agrega_noticia.asp" name=reduce2">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40" onKeyDown="limite2(this,200)" onKeyUp="limite2(this,200)"</p>
<input name="cont2" type="text" size="3" value="200" readonly>
</p>
</form>
<form name="reduce">
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="registro" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</form>
</body>
</head>
</html>


Ejemplo 2. Quitando el contador.

<html>
<head>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.

function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto) que.value=v.substring(0,cuanto)
}
</script>
</head>
<body>

<p><br>
<form method="POST" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40" onKeyDown="limite(this,200)" onKeyUp="limite(this,200)"></p>
</form>
<form name="reduce">
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="registro" rows=15 cols=45 ></textarea>
</form>
</body>
</head>
</html>

Última edición por Carlitos; 16/11/2002 a las 14:07
  #4 (permalink)  
Antiguo 16/11/2002, 16:57
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 9 meses
Puntos: 0
gracias a todos pero sigo teniendo problemas , el problema que tengo ahora es que no me lo agrega a la base de datos , antes de insertar este codigo me agregava la noticia a la base ya ahora no me lo manda a ningun lado.

paso el codigo nuevamente:

<html>

<head>
<title>Página principal</title>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.

function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto)
que.value=v.substring(0,cuanto)
else
document.reduce.cont.value=cuanto-v.length
}
</script>
</head>

<body>
<form method="POST" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40">
</p>
<p>Noticia:<br>
<form name="reduce">
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="`noticia" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</form>
</p>
<p>Ingrese url de la imagen</p>
<p>
<input type="text" name="imagen">
</p>
<p><input type="submit" value="Ingresar noticia" name="enviar"></p>
</form>
</body>
</html>
  #5 (permalink)  
Antiguo 17/11/2002, 02:58
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola de nuevo:

El problema es que tienes un form dentro de otro form y esto no funciona.

Solución: quita el segundo form y dale su nombre al primero:

<html>
<head>
<title>Página principal</title>
<script language="JavaScript">
// Limita los caracteres a introducir en un TextArea y cuenta los que quedan para llegar al final. En este caso, son 200. Para modificar el tamaño, solo hay que cambiar este valor en 'limite(this,200)' y en 'value=200' por el deseado.
function limite(que,cuanto)
{
var v=que.value
if(v.length>cuanto)
que.value=v.substring(0,cuanto)
else
document.reduce.cont.value=cuanto-v.length
}
</script>
</head>
<body>
<form method="POST" name="reduce" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40">
</p>
<p>Noticia:<br>
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="`noticia" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</p>
<p>Ingrese url de la imagen</p>
<p>
<input type="text" name="imagen">
</p>
<p><input type="submit" value="Ingresar noticia" name="enviar"></p></form>
</body>
</html>
  #6 (permalink)  
Antiguo 17/11/2002, 14:46
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 21 años, 9 meses
Puntos: 0
CON LA ULTIMA QUE ME PASARON LO PROBE PERO NO ME PASA LA NOTICIA , PASA EL COPETE , EL TITULO, LA IMAGEN , PERO NO ME AGREGA LA NOTICIA A MI TABLA.


AYUDAAAAAAAAAAAAAAA
  #7 (permalink)  
Antiguo 18/11/2002, 15:50
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Te has fijado a ver no sea que tienes un error en el nombre del textarea?

name="`noticia"

Última edición por Carlitos; 18/11/2002 a las 15:59
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 06:15.