jQuery - 在将值添加到textarea时添加换行符

时间:2015-08-07 14:06:37

标签: jquery

目前,当您单击下拉列表时,选择一个选项并单击任何复选框,它会向文本框添加一个值。但是,当我添加第二个值时,它会直接输入到第一个值旁边。我该如何添加换行符?

Fiddle

的jQuery

 $(document).ready(function () {
        $('.group').hide();
        $('#selectMe').change(function () {
            $('.group').hide();
            $('#' + $(this).val()).show();
        })
    });

    var courses = {
        course1: 'BIS 445 UCC lvl8 ',
        course2: 'Commerce 475 UCC lvl8 ',
        course3: 'Economics 350 UCD lvl8 ',
        course4: 'Government 405 UL lvl8 ',
        course5: 'Medicine 600 UCC lvl8',
        course6: 'Nursing 500 UCC lvl8'
    }

    var $mytextbox = $('#courses');

    $("input[type='checkbox'][name*='course']").change(function () {
        var $chk = $(this);
        if ($chk.prop('checked')) {
            $mytextbox.val($mytextbox.val() + courses[$chk.attr('name')]);
        } else {
            $mytextbox.val($mytextbox.val().replace(courses[$chk.attr('name')], ""));
        }
    });

2 个答案:

答案 0 :(得分:1)

<textarea>输入中,通过在行尾插入\n来创建换行符,从而创建新行。

将代码修改为如下所示:

$("input[type='checkbox'][name*='course']").change(function () {
    var $chk = $(this);
    if ($chk.prop('checked')) {
        $mytextbox.val($mytextbox.val() + courses[$chk.attr('name')] + "\n");
    } else {
        $mytextbox.val($mytextbox.val().replace(courses[$chk.attr('name')] + "\n", ""));
    }
});

我已更新您的JSFiddle here以演示其工作原理。在检查和取消选中课程时,记住更新\n字符的插入和删除非常重要。如果不在两个地方插入和删除\n字符,您可能会遇到不受欢迎的结果,例如课程之间的多行。

答案 1 :(得分:0)

您只需添加换行符即可。参见:

Add a linebreak in an HTML text area

&#34; \ n&#34;或&amp; vbCrLf

类似

$mytextbox.val($mytextbox.val() + "\n" +  courses[$chk.attr('name')]);