javascript - 从动态下拉列表中获取选定值(由 javascript 生成的 ID 选项)

标签 javascript html google-apps-script web-applications getelementbyid

我正在尝试获取用户选择的动态下拉列表的值(未预先确定)。我很确定我不能使用(也试过)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/

相关文章:

javascript - 在网页中嵌入音频的最佳方式?

javascript - 如何解析 Google App Script 中的 JSON 响应?

google-apps-script - 使用 Google 电子表格中的脚本从手机获取我的当前位置

javascript - 将电子邮件正文导出到 Google 表格中的多个单元格中

javascript - ng-repeat完成事件在排序后不起作用

javascript - 给定一个整数数组,找到总和最接近 0 的两个元素。

css - 带彩色条的水平菜单

javascript - 如何根据 Javascript 中变量的内容提取属性?

javascript - 在 Graal.js 中使用 java 类

html - Web 开发——学习 Web 开发语言、平台——Grails 或 Ruby 或任何其他语言?