我正在 Google Chrome 浏览器上的 Textarea 中实现一个名为 Single New Line and New Paragraph 的功能(在 IE 中,我的解决方案正在运行,所以在 IE 上没有问题,因为 IE 认为 Shift+Enter (\r\n) 和 Enter (\n) 不同) . 这个概念是,如果我按 Shift+Enter,那么光标后的行(文本)应该转到下一个(新)行(\r\n),但应该在同一段落中考虑。现在,如果我只按 Enter 键,那么光标后的行(文本)也应该转到下一个(新)行(\n),但这次应该被视为一个新段落。
现在我的问题是:根据 jQuery API 文档(http://api.jquery.com/val/),默认情况下 Textarea 不考虑 \r\n 。它只考虑 \n 我是按 Shift+Enter 还是只按 Enter。为了解决这个问题,我实现了名为的钩子(在 jQuery 站点中给出)
$.valHooks.textarea = {
get: function( elem ) {
return elem.value.replace( /\r?\n/g, "\r\n" );
}
};
但是,无论我在 Textarea 上按什么键,它每次都会放置 \r\n。我想区分 Shift+Enter (\r\n) 和仅 Enter(\n)。但是如果放置了上面的钩子,那么每次它都会添加 \r\n 无论我是按 Shirt+Enter 还是只按 Enter。
在服务器端,现在很难确定如何考虑单新行(\r\n)或新段落(\n)?因为在这两种情况下,\r\n 组合都是从 Chrome 浏览器发送的。
基于 Shift+Enter 并且仅按下 Enter 键,我将在服务器端区分它们。但如上所述,每次 \r\n 从 Chrome 发送到服务器。
以上整个问题仅适用于谷歌浏览器(它在 IE 的所有版本中都能正常工作)。
如果在上述问题解释中仍然遗漏任何内容,请告诉我。
等待进一步的帮助:)