我有一个空的文本区域字段。第一个下拉菜单允许我选择要插入到文本区域中的代码块。例如:
<select name="myfirstselect[]" class="my-select">
<option selected disabled="disabled">Choose your code block</option>
<option value="first-option">first code block</option>
<option value="second-option">second code block</option>
</select>
var first_option='...(my first block of code)';
var second_option='...(my second block of code)';
var textarea = $("#myTextarea");
$('.my-select').on('change' , function() {
select = $(this).val();
if(select == "first-option") {
textarea.text(first_option);
} else if(select == "second-option") {
textarea.text(second_option);
}
我有第二个下拉菜单,允许我替换代码块中的一些单词。
$('.my-other-select').on('change' , function() {
code = $(this).val();//get the value
text = $('.my-other-select option:selected').html();//get the text
textarea.html(textarea.html().replace(/word1/g,code));
textarea.html(textarea.html().replace(/word2/g,text));
});
使用以下代码可以正常工作:我首先在文本区域中选择要注入的代码块,然后当我从第二个下拉列表中选择一个选项时,每个“word1”和“word2”都被下拉列表中的文本和值所替换。
问题是,一旦单词被替换,即使我改变主意,在第二个下拉菜单中选择另一个选项,它也不会改变文本。我想要的是更动态的东西,所以每次我选择其他选项时,单词都会被相应地替换。
在这里,如果我想选择另一个选项,我必须刷新页面。
这是否与代码有关:
textarea.html(textarea.html().replace()
任何帮助将不胜感激:)
1条答案
按热度按时间0s0u357o1#
无论如何,你需要获得原始文本,然后在第二个选择框改变时替换它,所以,实现这一点的一种方法是使用第一个选择框的值获得原始文本,然后替换该文本。
演示代码: