【问题标题】:Hiding <br /> inside a text box, when the user presses enter key in jquery当用户在 jquery 中按下回车键时,将 <br /> 隐藏在文本框中
【发布时间】:2012-07-23 02:13:51
【问题描述】:

这类似于question

我目前正在尝试在文本框中捕获用户的信息,然后在提交时以电子邮件中的确切格式将此信息发送给页面所有者。

此时发送的电子邮件显示在一行中。我需要在电子邮件中包含换行符。

我有以下代码,我需要对用户隐藏换行符。任何建议将不胜感激。

    $("textarea").keypress(function(e){
      if (e.keyCode == 13) {        
         $(this).val(  $(this).val() + "<br/>");
         //insert a newline
         $(this).val($(this).val() + "\n");
         alert("just enter was pressed");
         return;
      }
    }

【问题讨论】:

  • 首先,textarea 元素只包含文本,而不是子 html 元素(所以没有 &lt;br&gt; 元素)。其次,在当前值的end 处插入&lt;br/&gt; 没有意义,因为用户不一定在字段的末尾键入。您应该在提交时进行任何类似的处理,最好是在服务器端,如果那是发送电子邮件的地方 - 您不能在此时获取完整的值并将\n替换为&lt;br&gt;(假设您发送的电子邮件'发送实际上是html格式)?
  • 感谢您的信息。我将 textarea 用于用户的反馈目的。目前它只是在一行上显示所有内容,并且正在剥离格式,因为它无法识别 html。关于我哪里出错的任何想法也仍然是新手......在此先感谢。
  • 如何生成电子邮件?服务器端?

标签: jquery textbox textarea keycode onkeypress


【解决方案1】:

请试试这个:http://jsfiddle.net/yauqg/

希望对事业有所帮助:)

代码

$('#text').keyup(function(e){
      var keyed = $(this).val().replace(/\n/g,'<br />');
      $("#target").html(keyed);
 });​

【讨论】:

  • 您可以从该正则表达式中省略 [] 括号。同样的处理也应该在 blur 或 submit 上进行(以允许用户将文本拖放或粘贴到字段中)。
  • 谢谢你,完成了! @nnnnnn(=&gt; nnnnnn 是什么意思 - 如果我可以问的话):)
  • 感谢 Tats_innit 的提示,我刚刚解决的问题略有不同。我遇到的问题是它无法识别 html 标签并删除了格式。
  • 干杯兄弟,我也是女性:)这就是我所拥有的,而且我对 jquery 还是很陌生并尝试掌握它:$("textarea").keypress(function(e ){ if (e.keyCode == 13) { var keyed = $(this).val().replace("/\n/g",'
    '); $("textarea").html (键控); } });
  • @BridC 哈哈哟Cuz,saweet! :P srry for bruv - 很酷,确实是一只好鸟! +1
猜你喜欢
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 2012-06-08
  • 2014-06-08
  • 1970-01-01
相关资源
最近更新 更多