我有一点问题。我有一个选择选项。当选择一个选项,然后文本在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)
答案 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/