【发布时间】:2019-01-18 08:06:29
【问题描述】:
我正在尝试获取用户选择的动态下拉列表的值(不是预先确定的)。我很确定我不能使用(也试过)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 数组值之一,但控制台无法打印它的值。
【问题讨论】:
-
你不应该给出冲突的
id。它应该是唯一的 -
是的,我很清楚这就是为什么我要求其他方法来获取下拉列表中的选定值
标签: javascript html google-apps-script web-applications getelementbyid