Javascript 更改文本区域内容取决于选定的值
我有一张表格。此表单中包含文本区域和下拉字段。当我从此下拉列表中选择多个选项时,值将显示在此文本区域内,当我从下拉列表中取消选择选项时,它们将从文本区域中删除。但现在我的问题是,当我编辑或添加内容到这个文本区域后,我无法添加选定的值到这个文本区域与用户输入的数据 我想查看输入文本+选定值的文本区域内容 这怎么可能 我的代码在这里:Javascript 更改文本区域内容取决于选定的值,javascript,jquery,Javascript,Jquery,我有一张表格。此表单中包含文本区域和下拉字段。当我从此下拉列表中选择多个选项时,值将显示在此文本区域内,当我从下拉列表中取消选择选项时,它们将从文本区域中删除。但现在我的问题是,当我编辑或添加内容到这个文本区域后,我无法添加选定的值到这个文本区域与用户输入的数据 我想查看输入文本+选定值的文本区域内容 这怎么可能 我的代码在这里: <!doctype html> <html lang="en"> <head> <meta ch
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>val demo</title>
<style>
p {
color: red;
margin: 4px;
}
b {
color: blue;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<textarea id="test"></textarea>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<script>
function displayVals() {
var singleValues = $( "#single" ).val();
var multipleValues = $( "#multiple" ).val() || [];
$( "#test" ).val( multipleValues.join( ", " ) );
}
$( "select" ).change( displayVals );
displayVals();
</script>
</body>
</html>
您希望将textarea内容设置为输入文本+选定值。所以它应该如下所示
var currentTextVal = $("#test").val();
var multipleValues = $("#multiple").val() || [];
$("#test").val( currentTextVal + ' , ' + multipleValues.join(", "));
在重写选项值之前从文本中删除选项值:
function displayVals() {
var multipleValues = $( "#multiple" ).val() || [];
var test = $( "#test" ).val();
console.log("#test = " + test);
for (i = $( "option" ).length - 1; i >= 0; i--) {
console.log($($("option")[i]).val());
test = test.replace($($("option")[i]).val() + ", ", "");
test = test.replace($($("option")[i]).val(), "");
}
$( "#test" ).val( test.trim() + " " + multipleValues.join( ", " ) );
}
$( "select" ).change( displayVals );
displayVals();
jsiddle:试试这个:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>val demo</title>
<style>
p {
color: red;
margin: 4px;
}
b {
color: blue;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<textarea id="test"></textarea>
<div id="result"></div>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<script>
function displayVals() {
// $( "#test" ).val() = '';
var singleValues = $( "#test" ).val();
var multipleValues = $( "#multiple" ).val() || [];
$( "#result" ).html(singleValues+' '+ multipleValues.join( ", " ) );
}
$( "select" ).change( displayVals );
displayVals();
</script>
是否希望自定义文本和选定框值在textarea中合并?是的,这是我的问题。.文本将从页面加载时的静态状态变为静态状态,或者您希望输入动态状态,如textbox?您是否希望像下面的示例一样无限期追加,或者您希望只输入文本+选定文本并更改文本仅选定文本位?是,我希望输入文本+选定文本,并仅更改选定文本位。我希望在文本区域内显示内容。是否可能?如果我希望显示类似此格式的内容,请选择值+输入文本+选定值+选定值+输入文本,如何执行此操作?否如果我在两个选定值之间输入文本,则文本将显示在文本区域内容的开头。