2

我正在使用 JavaMail 发送电子邮件。因此,我有一个 textArea,客户可以在其中撰写他们的消息,并在按下按钮时将它们发送给我。在我的测试过程中,我意识到当我在 textArea 中按“Enter”/“Return”键时,它会破坏我的文本,但是当我检查邮箱时,它只有一行文本!

怎么做?

请帮帮我!

我现在使用这个代码,它似乎工作:

<textarea rows="10" id="Message" onkeypress="BreakLine();"></textarea>

<script type="text/javascript">
function BreakLine() {
    var key = window.event.keyCode;

    // If the user has pressed enter
    if (key == 13) {
    document.getElementById("Message").value = document.getElementById("Message").value + "<br/>";
    }
}
</script>

但是,当我在 textArea 中粘贴某些内容时,它也会"<br/>"与其余文本一起打印,但是当我收到电子邮件时,它很好,我可以看到文本中的中断,就像它假设的那样!但是怎么去掉"<br/>"里面的textArea呢?

我也为outlook(我正在使用的那个)找到了这个例子,它使用"\r\n"而不是,"<br/>"但它对我不起作用!

PS我知道上面的例子只适用于IE,但现在不用担心......

4

4 回答 4

2

试试这个:

<textarea rows="10" id="Message" onkeypress="BreakLine();"></textarea>
<script type="text/javascript">
    function BreakLine() {
        var key = window.event.keyCode;
        // If the user has pressed enter
        if (key == 13) {
            document.getElementById("Message").value = document.getElementById("Message").value +"\n";
            window.event.preventDefault();
        }
console.log(encodeURIComponent(document.getElementById("Message").value));
    }
</script>
于 2013-10-18T11:35:56.503 回答
1

您是否调试过代码并查看从 textArea 传递到代码的字符串是什么?顺便说一句,您可以使您的 javascript 跨浏览器兼容:

function BreakLine() {
    var key = event.which || event.charCode || event.keyCode;

    // If the user has pressed enter
    if (key == 13) {
    document.getElementById("Message").value = document.getElementById("Message").value + "<br/>";
    }
}

如果上面获取密钥的行不起作用,您总是可以使用 jquery 的“which”函数来获取密钥代码,无论它是什么浏览器。

编辑: 您可以将<br>文本区域中的和文本组合起来,并将此值保存在页面上的隐藏字段中,而不是在文本区域中附加和显示。<br>然后在要发送消息的时候,就可以从这个隐藏字段中获取带有s的消息文本并发送出去。这样,文本区域中就不会有烦人<br>的 s,而且您的消息将根据需要多行。

于 2013-10-18T11:40:38.540 回答
0

如果消息是text/plain,那么 using\r\n应该可以工作。相反,如果消息类型是text\html,请使用 then <p/>

于 2013-10-18T12:10:44.590 回答
0

我自己解决它,所以在“发送电子邮件”按钮上单击它首先检查文本是否包含 /n(中断),如果“是”它将行添加到数组单元格()中。所以每一行都是分开保存的。之后,我将每一行添加到隐藏的 textArea 值并添加<br/>到每一行的末尾。

文本区域:

<textarea rows="10" id="Message" name="Message"></textarea>
<textarea id="HiddenMessage" name="HiddenMessage" style="display:none;"></textarea>

按钮:

<input type="button" id="SendEmail" value="Send Email" onclick="BreakLine();">

JavaScript:

<script type="text/javascript">
    function BreakLine() {
    var lines = $('#Message').val().split('\n');

    for(var i = 0;i < lines.length;i++){
        document.getElementById("HiddenMessage").value = document.getElementById("HiddenMessage").value + lines[i] + "<br/>";
        }   
    }
</script>
于 2013-10-18T15:05:05.050 回答