Estoy implementando una funcionalidad llamada Nueva Línea Simple y Nuevo Párrafo en Textarea en el navegador Google Chrome (en IE mi solución está funcionando bien, así que no hay problema en IE porque IE considera Shift+Enter (\r\n) y Enter (\n) de manera diferente). El concepto es que si presiono Shift+Enter entonces la línea (textos) después del cursor debería pasar a la siguiente línea nueva (\r\n) pero debería considerarse en el mismo párrafo. Ahora, si presiono solo la tecla Enter, entonces también la línea (textos) después del cursor debería pasar a la siguiente línea nueva (\n) pero debería considerarse como un Nuevo Párrafo esta vez.
Ahora mi problema es: por defecto Textarea no considera \r\n según la documentación de la API de jQuery (http://api.jquery.com/val/). Solo considera \n ya sea que presione Shift+Enter o solo Enter. Para resolver eso, implementé un hook (proporcionado en el sitio de jQuery) llamado
$.valHooks.textarea = {
get: function( elem ) {
return elem.value.replace( /\r?\n/g, "\r\n" );
}
};
Pero entonces siempre coloca \r\n sin importar qué teclas presione en Textarea. Quiero diferenciar entre Shift+Enter (\r\n) y solo Enter(\n). Pero si se coloca el hook anterior, entonces cada vez agrega \r\n ya sea que presione Shift+Enter o solo Enter.
En el lado del servidor, ahora es difícil identificar cómo considerar una Nueva Línea Simple (\r\n) o un Nuevo Párrafo (\n)? Porque en ambos casos, las combinaciones \r\n se envían desde Chrome Browser.
Según las teclas presionadas Shift+Enter y solo Enter, los diferenciaré en el lado del servidor. Pero como se explicó anteriormente, cada vez se envía \r\n de Chrome a Server.
Toda la pregunta anterior es solo para Google Chrome (funciona correctamente en todas las versiones de IE).
Si aún falta algo en la explicación anterior de la pregunta, por favor avíseme.
Esperando más asistencia :)