Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取下拉列表JavaScript的值_Javascript_Drop Down Menu - Fatal编程技术网

获取下拉列表JavaScript的值

获取下拉列表JavaScript的值,javascript,drop-down-menu,Javascript,Drop Down Menu,如何使所有选定的选项(不是值,而是实际文本)显示在某个地方 Html: <h1>Made your PC:</h1> <div> <label>Processeor: </label><select id="processor" name="processor"> <option class="label" value>Select Processor</option> <!--

如何使所有选定的选项(不是值,而是实际文本)显示在某个地方

Html:

<h1>Made your PC:</h1>

<div>
  <label>Processeor: </label><select id="processor" name="processor">
  <option class="label" value>Select Processor</option>
  <!-- Home Ware -->
  <option value="P1">Processor 1</option>
  <option value="P2">Processor 2</option>
  <option value="P3">Processor 3</option>
  <option value="P4">Processor 4</option>

  </select>
</div>

<p><strong>Only compatible components will show.</strong></p>
<div>
  <label>Select motherboard: </label><select id="motherboard" name="motherboard" class="subcat" disabled="disabled">
  <option class="label" value>Select Motherboard</option>
  <!-- Home Ware -->
  <option rel="P1 P2" value="AS1">ASUS RAMPAGE V EXTREME</option>
  <option rel="P2 P3" value="AS2">ASUS ATX DDR3 2600 LGA</option>
  <option rel="P1 P3 P4" value="GB1">Gigabyte AM3+</option>
  <option rel="P2 P4" value="MSI1">MSI ATX DDR3 2600 LGA 1150</option>

  </select>
</div>
<div>
  <label>Select RAM: </label> <select disabled="disabled" class="subcat" id="RAM" name="RAM">
  <option class="label" value>RAM Memory</option>
  <option rel="AS1 AS2 GB1" value="KI1">Kingston Value RAM</option>
  <option rel="AS1 AS2 MSI1" value="P5KPL">P5KPL-AM SE</option>
  <option rel="MSI1 GB1" value="960GM">960GM-VGS3 FX </option>
  </select>
</div>

<div>
  <label>Select Video Board: </label> <select disabled="disabled" class="subcat" id="video-card" name="video-card">
  <option class="label" value>Video Card</option>
  <option rel="MSI1 AS2" value="EVGA8400">EVGA GeForce 8400 GS</option>
  <option rel="AS1" value="XFXAMD">XFX AMD Radeon HD 5450</option>
  <option rel="MSI1 GB1" value="GTX750Ti">EVGA GeForce GTX 750Ti SC</option>
  </select>
</div>
我尝试了之前发布的一个代码,但它只显示一个选择,在选择之后,是否有任何方法可以显示所有选择以及我的随机文本,如“您的选择”?:


函数myNewFunction(sel)
{
警报(sel.options[sel.selectedIndex].text);
}
狗
猫
鸟
这实际上应该是可行的。
如果不起作用,请尝试放置一个
window.setTimeout(function(){…},10)围绕您的警报。当用户单击一个选项时,浏览器可能会在更新选择值之前调用myNewFunction()方法

编辑:如果需要文本而不是值,请使用

alert($(sel).find("option:selected").text());

这应该给出给定select元素的实际标签文本,而不是值

$(selector).find(":checked").html()
所以如果你想展示所有这些,你可以这样做:

$("#video-card").on("change", function () {
    var choices = [];
  $("select").each(function() {
    choices.push($(this).find(":checked").html());
  });
  alert("You selected: " + choices.join(', '));
})
这是一个用于演示的代码笔


您需要循环选择每个选项,而不仅仅是第一个选项:

function updateOutput() {
  var selects = document.getElementsByTagName('SELECT');
  var output = document.getElementById('output');
  var arr = [];

  for (i=0; i < selects.length; i++) {
    arr.push(selects[i].options[selects[i].selectedIndex].text);
  }

  output.innerHTML = arr.join('; ');
  return arr;
}
函数updateOutput(){
var selects=document.getElementsByTagName('SELECT');
var output=document.getElementById('output');
var-arr=[];
对于(i=0;i
在本例中,我将所有值推送到一个数组中,然后在最后加入数组值以创建最终字符串


我更新了前面提供的一个代码笔:

不起作用怎么办?在这里似乎有效:是的,对不起,它确实有效,但我需要显示所有选择,它在拾取后立即显示一个。它确实有效,但它显示选择的值,而不是文本。我更改了一点我的帖子。它现在有效,可以显示所有选择吗?这一个仅在拾取后显示一个。有没有可能在显示器上写些东西,比如“你的选择是:”?你的确切意思是什么?
select
标记的目的是只能选择一个选项。您想如何选择多个?是否可以在选择所有内容后启动它,或使用某个按钮触发它?它会在我选择后立即弹出。它工作得很好!是否可以制作一个按钮来触发它,这样它就不会在每次选择时都弹出?有没有可能在那里写一些像“这是你的选择:”?是的,只选择你最后的选择而不是所有的选择,我更新了我的帖子和代码笔来反映这一点,就是这样!谢谢有可能在弹出窗口上写点什么吗?编辑我的答案,写“你选择了:”
$(selector).find(":checked").html()
$("#video-card").on("change", function () {
    var choices = [];
  $("select").each(function() {
    choices.push($(this).find(":checked").html());
  });
  alert("You selected: " + choices.join(', '));
})
function updateOutput() {
  var selects = document.getElementsByTagName('SELECT');
  var output = document.getElementById('output');
  var arr = [];

  for (i=0; i < selects.length; i++) {
    arr.push(selects[i].options[selects[i].selectedIndex].text);
  }

  output.innerHTML = arr.join('; ');
  return arr;
}