用户输入时Textarea问题,但文本没有变化

时间:2012-11-10 11:14:55

标签: jquery html

我有一点问题。我有一个选择选项。当选择一个选项,然后文本在textarea中更改,一切正常,而用户不尝试在文本区域写东西,当用户键入,然后文本不再更改。这是代码: 选择选项:

   <select class="es" id="es1">
    <option id="edu1">1</option>
    <option id="edu2">2</option>
</select>

这里是我使用的jQuery代码(在此代码中我选择了选项ID,然后通过id号我正在显示文本,一切都运行正常)

$('#es1').change(function() {
                    $('#sk1').html('');
                    var id = $(this).children(":selected").attr("id");
                    var idd = id.split('edu');
                    var num = idd[1];
                    $('#sk1').html(customTextByNumber[num]);
                });

我的文字区域为id =“sk1”。最有趣的是,当用户在框中输入额外的内容时,当我选择其他选项时,文本不会改变,但是当我查看inspect元素(在谷歌浏览器中)时,我可以看到文本正在改变,但之后标签。例如,当用户不输入时,所有内容都显示在html中,如下所示:

<textarea id="sk1">text here</textarea>

用户输入额外内容后:

<textarea id="sk1">ecustom text and user text</textarea> Another options text which is not shown to user</textarea>

也许你有一些想法如何解决这个问题?

已解决如果出现此类问题,请使用此

$('#sk1').val(something);

而不是这个

$('#sk1').html('something'); (this is bad one)

2 个答案:

答案 0 :(得分:3)

您需要在.val()上使用textarea方法:

$('#es1').change(function () {
    $('#sk1').val(''); // This line is probably unnecessary...
    var id = $(this).children(":selected").attr("id");
    var idd = id.split('edu');
    var num = idd[1];
    $('#sk1').val(customTextByNumber[num]);
});​

我不知道customTextByNumber是什么,但在编辑textarea中的文字后它应该有用。

答案 1 :(得分:0)

你可以试试这个:

$('#es1').change(function() {
                $('#sk1').html('');
                var id = $(this).children(":selected").attr("id");
                var idd = id.split('edu');
                var num = idd[1];
                $('#sk1').val(num);
});

在这里,您可以看到http://jsfiddle.net/tH8N5/