我正在尝试获取用户选择的动态下拉列表的值(未预先确定)。我很确定我不能使用(也试过)document.getElementById("selectSubject").value;
因为它有冲突的ID。我不能使用 document.getElementByClass
因为我将使用它通过 CSS 添加样式。
<script> //to generate the dynamic dropdown that is working
var select = document.getElementById("selectSubject");
if (arrayEmail[i] == email){
var opt = arraySubject[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
<script>
<select id="selectSubject"> //where the dynamic dropdown is show
<option>Choose assigned subject</option>
</select>
//additional info that may contribute to the problem
<form>
<input type="hidden" name ="subjectFolder" id="uploadFile">
<input type="file" name="imageFile">
<input type="button" value="Upload File" onclick="google.script.run.withSuccessHandler().upload(this.parentNode)">
</form>
附加信息是我计划获取下拉列表的值以用作 <input type="hidden" name ="subjectFolder" id="uploadFile">
中的参数通过 using document.getElementById('uploadFile').value = "value of selected option in dropdown"
编辑 更新 我也试过了但是没用
var subjects = document.getElementsByTagName("select").getElementById('selectSubject').value;
document.getElementById('uploadFile').value = subjects;
** 编辑** 更新 我已经通过这样做尝试了 ravishankar chavare 的方法,但仍然不起作用。
var e = document.getElementById("selectSubject");
var selected_value = e.options[e.selectedIndex].value;
document.getElementById('uploadFile').value = selected_value;
** 编辑** 更新
var e = document.getElementById("selectSubject");
var selected_value = e.options[e.selectedIndex].value;
document.getElementById('uploadFile').value = selected_value;
console.log(selected_value);
控制台只打印“选择分配的主题”,因为它是默认选择的,但是当我删除 <option> Choose assigned subject </option>
时默认选择的是基于下拉列表的 javascript 的数组值之一,但控制台无法打印它的值。
最佳答案
var select = document.getElementById("selectSubject");
var opt = 'youreemailvalue';
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
function SetSelectedValue() {
var e = document.getElementById("selectSubject");
var selected_value = e.options[e.selectedIndex].value;
document.getElementById('uploadFile').value = selected_value;
alert('value set to uploadfile')
}
<select id="selectSubject" onchange="SetSelectedValue();">
<option>Choose assigned subject</option>
</select>
<form>
<input type="hidden" name ="subjectFolder" id="uploadFile">
<input type="file" name="imageFile">
<input type="button" value="Upload File" onclick="google.script.run.withSuccessHandler().upload(this.parentNode)">
</form>
下面的代码对我有用
var e = document.getElementById("selectSubject");
var selected_value= e.options[e.selectedIndex].value;
selected_value获取用户选择的值
在这里使用 Jsfiddle 示例 https://jsfiddle.net/0yfdc51g/
关于javascript - 从动态下拉列表中获取选定值(由 javascript 生成的 ID 选项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54249852/