【问题标题】:How to show the text of selected option in textarea如何在textarea中显示所选选项的文本
【发布时间】:2014-10-20 15:15:32
【问题描述】:
<select name="sweets">
<option value="none"></option>
<option>Chocolate</option>
<option>Candy</option>
<option>Taffy</option>
<option>Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>

<textarea id="show_sweets"></textarea>

<script>
$( "select" )
.change(function () {
var str = "";
var txtinf = "";
$( "select option:selected" ).each(function() {
str += $( this ).text() + " ";
});
$( "textarea" ).text(str);
})
.change();


</script>

请说明如何显示每个选定选项的文本 + 附加文本“购买”。但如果选择值为“none”的选项,则不显示任何内容。

例如如果用户选择带有文本“巧克力”的选项,则 textarea 中的文本应该是这样的:

“买巧克力”

如果选择了其他选项,则文本应替换为“购买焦糖”等新短语

但如果它选择了 value="none" 的那一个,则 textarea 中不应该显示任何选项文本或附加文本(“购买”)。

必须在 textarea 中只显示选项文本而不显示选项值。

【问题讨论】:

  • 你忘记发布 jQuery 代码了。

标签: jquery select text option


【解决方案1】:

试试这个 Jquery 代码:-

$('select[name="sweets"]').change(function(){
  $("#show_sweets").val("Buy " + $('select[name="sweets"] option:selected').text());
});

$('select[name="sweets"]').change(function(){
  var textval = $(this).find(":selected").text();  //get text as shown here(a more shorter way as shown in accepted answer)
  if(textval != ""){
    textval = "Buy " + textval;
  }

  $('#show_sweets').val(textval);
});

或者只是将您的 HTML 标记更正为:

<select name="sweets">
<option value="none"></option>
<option value="Chocolate">Chocolate</option>
<option value="Candy">Candy</option>
<option value="Taffy">Taffy</option>
<option value="Caramel">Caramel</option>
<option value="Fudge">Fudge</option>
<option value="Cookie">Cookie</option>
</select>

<textarea id="show_sweets"></textarea>

然后使用这个 Jquery 代码:-

$('select[name="sweets"]').change(function(){
  if($(this).val()!="none")
  $('#show_sweets').val("Buy " + $(this).val());
  else
  $('#show_sweets').val("");   
});

【讨论】:

  • 它显示所有选项的文本:“购买巧克力糖太妃糖焦糖软糖饼干”。但我只需要显示一个选定的选项文本和
  • 是的,谢谢。我刚刚用最后一行更正了你的脚本 $('#show_sweets').val("");而且我不能使用你的 html 标记,因为我不能只使用选项值选项文本。
  • @spinet ..我发布的更短的方式只是看到第二个答案..我更短的方式来实现你的功能..谢谢...
【解决方案2】:

代码如下:

$('select[name="sweets"]').change(function(){
    var text = $(this).find("option:selected").text();
    if(text != ""){
       text = "Buy "+text;
    }

    $('#show_sweets').val(text);
});

就是这样。

【讨论】:

  • 此代码仅显示选项文本,但没有附加文本“购买”,如果选择
  • 我更新了答案。现在检查一下,它会像你提到的那样工作。
  • 上面的代码不起作用,只需在小提琴上尝试一下 $(this).text() 正在获取 select 中所有选项的文本
  • @Exception 只是小小的改变,我已经更新了。检查一下,现在可以完美运行了。
  • 是的..这可能有效..但我担心为什么 $(this).text() 正在选择中的所有选项的文本..而且在我的第一个答案中 .val() 正在工作并且选择列表中的选项标记中没有值???
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 2015-10-08
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多