Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] enviar form al darle enter en un textarea

Estas en el tema de enviar form al darle enter en un textarea en el foro de Jquery en Foros del Web. Hola saludos a todos, Estoy desarrollando un sistema de comentarios y tengo varios formularios con su respectivo textarea (no quiero colocar el botón submit), pero ...
  #1 (permalink)  
Antiguo 18/09/2014, 19:25
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 22 años, 3 meses
Puntos: 3
Pregunta enviar form al darle enter en un textarea

Hola saludos a todos,

Estoy desarrollando un sistema de comentarios y tengo varios formularios con su respectivo textarea (no quiero colocar el botón submit), pero solo he logrado que me funcione con el primer formulario, y los demás los toma en blanco, según mi lógica me dice que lo esta tomando en blanco por que el primero no tienen nada, aquí esta el código:

Código:
$(document).ready(function() {
$("#comentario").keydown(function() {
	var message = $("textarea").val();
	if (event.keyCode == 13) {
		if (message == "") {
		alert("El Comentario esta en Blanco");
		} else {
 			if (message.match(/[^A-Za-z0-9!¡¿?,áÁéÉíÍóÓúÚñÑ;: ]/)) {
			alert("No se permiten direcciones Web, ni Enlaces, ni carácteres especiales (Ejem.: /.) en los comentarios.");
			}else{	
			$("#comentarios").submit();
			//alert("enviado");
			}
		}
$("textarea").val('');
return false;
}
});
});
Que es lo que deseo que me funcione en todos los formularios tipo facebook para que se entienda mejor, donde esta el error que no lo veo ....

los formularios ejemplos:
Código HTML:
<form method='post' id='comentarios' name='comentarios' action='#'>
<textarea id='comentario' class='textarea-comentario' name='comentario' placeholder='Escribe tu comentario...' rows='1'></textarea>
</form>
//...//
<form method='post' id='comentarios' name='comentarios' action='#'>
<textarea id='comentario' class='textarea-comentario' name='comentario' placeholder='Escribe tu comentario...' rows='1'></textarea>
</form>
//...//
<form method='post' id='comentarios' name='comentarios' action='#'>
<textarea id='comentario' class='textarea-comentario' name='comentario' placeholder='Escribe tu comentario...' rows='1'></textarea>
</form> 
En donde esta mi error que no lo veo ayudaaaaa please
Saludos a Todos
  #2 (permalink)  
Antiguo 18/09/2014, 20:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: enviar form al darle enter en un textarea

Para empezar, haces mal al asignar el mismo id a todos los formularios, al igual que lo haces con todas las áreas de texto. Dicho dato debe de ser único en el documento HTML, no debe de repetirse. Podrías usar clases, las cuales sí puedes asignar a más de un elemento.

Por otra parte, al hacer esto:

Código Javascript:
Ver original
  1. $("textarea").val();

Estás tomando a todas las áreas de texto presentes en el documento. Si el evento keydown lo utilizas para hacer referencia al área de texto que tenga el enfoque cuando pulses la tecla ENTER, te basta con utilizar la palabra reservada this para así hacer referencia al mismo elemento.

Código Javascript:
Ver original
  1. $(this).val();

Y para hacer referencia al formulario al cual pertenece, basta con que utilices el método parent.

Código Javascript:
Ver original
  1. $(this).parent().submit();

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 19/09/2014, 00:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: enviar form al darle enter en un textarea

Hola:

Cita:
Iniciado por Titos Ver Mensaje
... (no quiero colocar el botón submit)...
Mala idea... Al menos deberías tenerlo dentro de un tag noscript...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 19/09/2014, 09:27
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 22 años, 3 meses
Puntos: 3
De acuerdo Respuesta: enviar form al darle enter en un textarea

Gracias Alexis no lo veía, ayer estaba muy abrumado de código jajajaja

Al final quedo así, por si puede ayudar a alguien (Recuerden necesitan las librerías de jQuery y Elastic):

Código:
$(document).ready(function() {
$("textarea").keydown(function(e) {
   var message = $(this).val();
    if(e.which == 13){
        if (message == "") {
		alert("El Comentario esta en Blanco");
		} else {
         	if (message.match(/[^A-Za-z0-9!¡¿?,áÁéÉíÍóÓúÚñÑ;: ]/)) {
			alert("No se permiten direcciones Web, ni Enlaces, ni carácteres especiales (Ejem.: /.) en los comentarios.");
			}else{	
			$(this).parent().submit();
	        //alert("enviado");
			}
        }
    $("textarea").val('');
	return false;
    }
});
// funcion elastic tipo facebook
jQuery('textarea').elastic();
});
Este script lo soporta: IE, chrome y Mozilla
Test: http://jsfiddle.net/jdefmoreno/jeds3xg2/55/



Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Mala idea... Al menos deberías tenerlo dentro de un tag noscript...

Saludos
Sabes que estaba analizando esto y me plantee y el usuario que tenga javascript deshabilitado como mete comentarios.?? al final puse un botón entre los tag noscript gracias caricatos...

Saludos a todos

Última edición por Titos; 19/09/2014 a las 11:31

Etiquetas: darle, enter, form, formulario, funcion, javascript, textarea
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 19:59.