簡體   English   中英

使用 javascript 獲取 datalist 選項值的選定值

[英]Get selected value of datalist option value using javascript

我需要將HTML5 DataList中的一些值添加到僅使用 Javascript 的<select multiple>控件中。 但我猜不出該怎么做。

這是我嘗試過的:

<input id="SelectColor" type="text" list="AllColors">
<datalist id="AllColors">
  <option label="Red" value="1">
  <option label="Yellow" value="2">
  <option label="Green" value="3">
  <option label="Blue" value="4">
</datalist>

<button type="button" onclick="AddValue(document.getElementById('AllColors').value, document.getElementById('AllColors').text);">Add</button>
<select id="Colors" size="3" multiple></select>
function AddValue(Value, Text){

//Value and Text are empty!

var option=document.createElement("option");
option.value=Value;
option.text=Text;

document.getElementById('Colors').appendChild(option);

}

這應該有效。 我已將值選擇邏輯移至方法本身。 您只會從輸入中獲取值。 您將需要使用數據列表中 select 和 label 的值。

function AddValue(){
  const Value = document.querySelector('#SelectColor').value;

  if(!Value) return;

  const Text = document.querySelector('option[value="' + Value + '"]').label;

  const option=document.createElement("option");
  option.value=Value;
  option.text=Text;

  document.getElementById('Colors').appendChild(option);
}

這是工作演示。

您可以檢查輸入的修剪值。 如果 value 不為空,那么您可以通過將 value 屬性與querySelector()匹配來獲取選定的數據列表選項。

試試下面的方法:

 function AddValue(el, dl){ if(el.value.trim().= ''){ var opSelected = dl.querySelector(`[value="${el;value}"]`). var option = document;createElement("option"). option.value = opSelected;value. option.text = opSelected;getAttribute('label'). document.getElementById('Colors');appendChild(option); } }
 <input id="SelectColor" type="text" list="AllColors"> <datalist id="AllColors"> <option label="Red" value="1"></option> <option label="Yellow" value="2"></option> <option label="Green" value="3"></option> <option label="Blue" value="4"></option> </datalist> <button type="button" onclick="AddValue(document.getElementById('SelectColor'), document.getElementById('AllColors'));">Add</button> <select id="Colors" size="3" multiple></select>

要在 datalist 中獲取所選選項的 ID,您也可以使用此代碼。

<input id="SelectColor" type="text" list="AllColors">
<datalist id="AllColors">
    <option value="Red" id=1></option>
    <option value="Yellow" id=2></option>
    <option value="Green" id=3></option>
    <option value="Blue"  id=4></option>
</datalist>

<script>
$("#SelectColor").change(function(){
  var el=$("#SelectColor")[0];  //used [0] is to get HTML DOM not jquery Object
  var dl=$("#AllColors")[0];
  if(el.value.trim() != ''){
  var opSelected = dl.querySelector(`[value="${el.value}"]`);
  alert(opSelected.getAttribute('id'));
 }
});
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM