jQuery:如何添加换行符以形成输入?

时间:2010-01-28 20:31:59

标签: javascript jquery forms text input

我正在以标准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);
    });
});

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

我的目标是让换行能够在后端表单处理的输出中生效,后者会生成一封电子邮件。由于我无法控制生成邮件的脚本,因此我试图用我可以控制的格式强加一些格式。

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

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

$(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'而不是添加换行符“\ n” {1}}

<br/>

答案 1 :(得分:1)

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