【问题标题】:jQuery: How can I add line break to form input?jQuery:如何在表单输入中添加换行符?
【发布时间】:2011-01-10 14:14:37
【问题描述】:

我正在收集标准 HTML 表单中的信息。例如,我有<input type="text" name="UserName" id="name"/>。提交表单时,我想在输入的值中添加换行符。因此,如果用户输入“foo”,表单将提交值“foo\n”。

这是我正在使用的 jQuery 函数:

$("#formID").submit(function () {
    $(":text").each(function () {
        var value = $(this).val();
        var newValue = value + " \n";
        $(this).val(newValue);
    });
});

但是,当提交表单时,分配给表单字段的值没有换行符。

我的目标是让换行符在生成电子邮件的后端表单处理的输出中保留下来。由于我无法控制生成邮件的脚本,因此我试图在我可以控制的范围内强加一些格式。

感谢任何帮助。

【问题讨论】:

  • 代码看起来没问题。对我来说。很可能是浏览器正在过滤掉换行符。
  • 电子邮件中的是什么?生成的邮件肯定是纯文本吗?如果不是,并且它是 HTML 邮件,则换行符将无效。
  • 生成的邮件是纯文本。使用上面的代码,结果是输入的文本值在末尾有一个额外的空格。
  • +1 欢迎来到 StackOverflow,@theJBRU!

标签: javascript jquery forms text input


【解决方案1】:

在看到您的输出是纯文本的评论之前,我发布了我之前的答案。现在试试这个:

$(document).ready(function() {  
    $("#formID").submit(function () {
        $(":text").each(function () {
            var value = $(this).val();
            var myname  = $(this).attr('name');
            var newValue = value + " \n";
            var hid   = '<input type="hidden" name="' + myname + '" value="' + newValue + '"/>';
            $(this).removeAttr('name');
            $("#formID").append(hid);
        });
    });
});

上一个答案

正如 Mark 所说,在浏览器(或电子邮件客户端)中查看时,换行符不会呈现为换行符,因此您应该添加一个 @ 而不是添加换行符“\n” 987654322@

$("#formID").submit(function () {
    $(":text").each(function () {
        var value = $(this).val();
        var newValue = value + '<br/>';
        $(this).val(newValue);
    });
})

【讨论】:

  • 不幸的是,这只是将文本“
    ”添加到字段值中。 HTML 换行符不会在邮件中呈现。感谢您的努力!
  • 第二种方法是基于 Teja Kantamneni 给出的提示,但不是将 foo 文本框的值分配给隐藏输入,我只是为隐藏输入使用相同的名称,这样后端脚本将获取名称-值对。
  • 我喜欢这种方法,@Majid。我的第一次尝试没有成功,因为脚本收到的似乎是空白值。例如,脚本的错误检查认为电子邮件输入无效,因为它是空白的。所以我认为我要做的第一件事是将 ":text" 选择器换成一个我可以应用到我希望完成此操作的字段的类。再次感谢。
  • 我发布的代码有错误。最后一行应该是 $("#formID").append(hid);不是 $("#myform").append(hid);我刚刚注意到并纠正了它。
【解决方案2】:

文本框不包含“\n”,只有 textarea 可以。您可以做的是自己将数据发布到控制器或将值存储在隐藏字段中,然后提交表单并读取服务器中的隐藏字段,如果您没有太多控制权,则将名称与隐藏字段匹配。

【讨论】:

  • 所以你建议我取文本字段“foo”的值并将其分配给隐藏字段“bar”,将\n附加到“bar”的值,然后提交形式?我会试一试。
猜你喜欢
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2016-08-22
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多