Сохранить разрыв строки в textarea при использовании mailto - PullRequest
0 голосов
/ 07 января 2019

У меня есть текстовая область, куда пользователь может вставить некоторый текст, и после того, как он нажмет кнопку «Отправить», текст должен быть скопирован (как он был введен) в окне электронной почты по умолчанию (я пробовал с Outlook). На данный момент, если я хочу ввести:

abcd

def

Я получу вывод:

abcd</br></br>def 

Это HTML-файл:

<div class="form-group">
    <label for="message" class="sr-only">Message</label>
    <textarea name="message" id="message" class="form-control" cols="30" rows="7" placeholder="Message" minlength="5" data-validation-minlength-message="Min 5 characters" maxlength="999" required></textarea>
</div>
<div class="form-group">
    <input type="submit" value="Send Message" onclick="javascript: sendemail();" class="btn btn-primary" id="abcd">
</div>

А это файл .js:

function sendemail() {

var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var message2 = document.getElementById('message').value;

var myLineBreak = message2.replace(/\r\n|\r|\n/g, "</br>");

var pattern = /[a-zA-Z0-9!#$%&amp;'*+\/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*/;

if (name.length == 0) 
    alert("Please complete the Name field!");
else
    if (pattern.test(String(email).toLowerCase()) == 0)
        alert("Please enter a valid email address!");
    else
        if (message2.length < 5)
            alert("Message too short!");
        else {
            document.getElementById("form1").action = "mailto:JustinF@somesite.com&body=" + myLineBreak;
            document.getElementById("form1").submit();
        }
}

Я также пытался добавить это в style.css:

#abcd {
    white-space: pre-wrap;
}

но безуспешно ... (abcd - это идентификатор кнопки "Отправить")

1 Ответ

0 голосов
/ 07 января 2019

Мне удалось это понять. Я заменил

var myLineBreak = message2.replace(/\r\n|\r|\n/g, "</br>");

с

var myLineBreak = message2.replace(/\r\n|\r|\n/g, "%0D%0A");

Теперь все работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...