JQuery: Как я могу добавить разрыв строки для ввода формы? - PullRequest
4 голосов
/ 28 января 2010

Я собираю информацию в стандартной форме 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 ]

4 голосов
/ 28 января 2010

Я опубликовал свой предыдущий ответ до того, как увидел ваш комментарий о том, что вывод - простой текст. Теперь попробуйте это:

$(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);
        });
    });
});

Предыдущий ответ

Как говорит Марк, символ разрыва строки не отображается как разрыв строки при просмотре в браузере (или почтовом клиенте), поэтому вместо добавления символа разрыва строки "\ n" вы должны добавить <br/>

$("#formID").submit(function () {
    $(":text").each(function () {
        var value = $(this).val();
        var newValue = value + '<br/>';
        $(this).val(newValue);
    });
})
1 голос
/ 28 января 2010

Текстовое поле не содержит "\ n", только текстовое поле. Что вы можете сделать, это самостоятельно опубликовать данные на контроллере или сохранить значения в скрытых полях, отправить форму и прочитать скрытые поля на сервере, если у вас нет большого контроля, сопоставьте имена со скрытыми полями.

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