我正在使用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/>"
以及其他文本,但是当我收到电子邮件时,我可以看到文本中的断点,就像它想象的那样!但是如何摆脱textArea中的"<br/>"
?
我找到了这个示例for outlook(我正在使用的那个),它使用"\r\n"
代替"<br/>"
,但它对我不起作用!
P.S。我知道上面的例子只适用于IE,但现在不用担心...
答案 0 :(得分: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>
答案 1 :(得分: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>
的消息文本并发送它。通过这种方式,文本区域中不会出现烦人的<br>
,而且您的邮件将是多行的。
答案 2 :(得分:0)
如果邮件为text/plain
,则使用\r\n
应该有效。相反,如果邮件类型为text\html
,请使用<p/>
。
答案 3 :(得分: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>