根据下拉菜单中选择的选项显示文本

时间:2019-02-11 12:57:13

标签: javascript jquery html bootstrap-4

我有一个如下所示的下拉列表。

<label for="form_name">Title</label>
<select class="bootstrap-select">
  <option value="1" selected="selected">Feature 1</option>
  <option value="2">Feature 2</option>
  <option value="3">Feature 3</option>
  <option value="4">Feature 4</option>
</select>
<div><p>Text1</p></div>
<div><p>Text2</p></div>
<div><p>Text3</p></div>
<div><p>Text4</p></div>

我打算在选择 Feature 1 时显示 Text 1 ,在选择 Feature 2 时显示 Text 2 等等。

关于如何使用JS(或jQuery)执行此操作的任何想法?

P.S。现有的大多数解决方案都需要输入字段而不是选项字段,或者我太菜鸟了。 xD

4 个答案:

答案 0 :(得分:1)

p标记为id的{​​{1}},将value标记为options,并在选定选项的值等于{{ 1}},共id

p
$('p').hide();
$('#1').show();
$('select').change(function() {
$('p').hide();
  var a = $(this).val();
  $("#" + a).show();
})

答案 1 :(得分:0)

使用纯JavaScript

let select = document.querySelector("select");
let divs = document.querySelectorAll("div");
let result = document.querySelector("#result");

function func1(par){
  result.innerText = divs[par - 1].innerText;
}
div:not(#result) {
  display:none;
}
<label for="form_name">Title</label>
<select class="bootstrap-select" onchange="func1(this.value)">
  <option value="1" selected="selected">Feature 1</option>
  <option value="2">Feature 2</option>
  <option value="3">Feature 3</option>
  <option value="4">Feature 4</option>
</select>
<div><p>Text1</p></div>
<div><p>Text2</p></div>
<div><p>Text3</p></div>
<div><p>Text4</p></div>
<div id="result"></div>

答案 2 :(得分:0)

function display(){
    var e = document.getElementById("dropDownId");
    var index = e.selectedIndex;
    if(index==0){
        document.getElementById("first").style.display = 'block'
        document.getElementById("second").style.display = 'none'
    }
    else if(index==1){
        document.getElementById("first").style.display = 'none'
        document.getElementById("second").style.display = 'block'
    }
}
<label for="form_name">Title</label>
<select class="bootstrap-select" id="dropDownId" onchange="display()">
  <option value="1" selected="selected">Feature 1</option>
  <option value="2">Feature 2</option>
</select>
<div id="first"><p>Text1</p></div>
<div id="second" style="display: none;"><p>Text2</p></div>

请运行此代码段。并检查您的解决方案。

答案 3 :(得分:-1)

您可以在要显示的ids上使用div,并用您选择的ID更改value的{​​{1}}

select
$("#select-panel").change(function(){
   updateDisplay();
})

function updateDisplay(){
  var idToShow = $("#select-panel").find(":selected").val() || "div1";
   $(".subcontent").each(function(){
      $(this).css("display",$(this).is("#"+idToShow) ? 'block' : 'none');
   })
}

updateDisplay();
.subcontent{
display:none;
}