2

我有一个小问题。我有一个带有选项的选择。When one option is selected, then text changes in textarea, everything is working perfectly while user don't try to write something in text area, when user types, then text doesn't change anymore. 这是代码:选择选项:

   <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" 的文本区域。最有趣的是,当用户在框中输入额外的内容时,当我选择其他选项时,文本不会改变,但是当我查看检查元素(在谷歌浏览器中)时,我可以看到文本正在改变,但之后标签。例如,当用户不键入时,所有内容都显示在 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)
4

2 回答 2

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.

于 2012-11-10T11:24:29.547 回答
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/

于 2012-11-10T11:19:18.217 回答