javascript - 无法从下拉菜单中的选定选项中获取数组(Javascript)
问题描述
当我在下拉菜单中选择一个选项时,我希望它能够显示它的价值。问题是每个可用选项的值都是来自 Flask 的值列表。例如:'{{ column1 }}' 的值 - 没有双引号 - “['abc', 'def', 'ghi']”。因此,当我选择一个选项时,它只返回列表的第一项。前任。(不带双引号):“['abc'”。
是否有任何解决方法可以返回完整的值列表?
<script>
function showOptions(s) {
alert(s[s.selectedIndex].value);
alert(s[s.selectedIndex].id);
}
</script>
<select onchange="showOptions(this)" id="my_select2">
<option value={{ column1 }} id={{ column1 }}>{{ label_a1 }}</option>
<option value={{ column2 }} id={{ column2 }}>{{ label_b1 }}</option>
</select>
解决方案
你想改变每个value={{ column1 }} id={{ column1 }}
环绕双引号{{ ... }}
从
value={{ column1 }} id={{ column1 }}
到
value="{{ column1 }}" id="{{ column1 }}"
否则,您的值将与 : 完全相同value=['abc', 'def', 'ghi']
,这意味着value=['abc',
(空格结束分配的值,因为没有双引号来分隔它们)
换言之,从
function showOptions(s) {
alert(s[s.selectedIndex].value);
alert(s[s.selectedIndex].id);
}
<select onchange="showOptions(this)" id="my_select2">
<option value=['abc', 'def', 'ghi'] id=['abc', 'def', 'ghi']>{{ label_a1 }}</option>
<!-- ^-----------^------ This is your value attribute -->
<option value=['jkl', 'mno', 'pqr'] id=['jkl', 'mno', 'pqr']>{{ label_b1 }}</option>
</select>
到
function showOptions(s) {
alert(s[s.selectedIndex].value);
alert(s[s.selectedIndex].id);
}
<select onchange="showOptions(this)" id="my_select2">
<option value="['abc', 'def', 'ghi']" id="['abc', 'def', 'ghi']">{{ label_a1 }}</option>
<!-- ^---------------------------^------ This is the value attribute you want -->
<option value="['jkl', 'mno', 'pqr']" id="['jkl', 'mno', 'pqr']">{{ label_b1 }}</option>
</select>
推荐阅读
- javascript - Google Apps 脚本:类表示法和新对象
- python - 如何从python中的字典中获取值?
- reactjs - 如何在同一个根域下创建 2 个 PWA
- javascript - 编写一个 JavaScript 控制台程序来读取输入文件并将句子转换为首字母缩写词
- javascript - 如何在 CKEditor 4 中设置默认字体
- c++ - 使用动态编程的具有分区约束的 Max Sum 子数组
- javascript - 如何从阴影根元素中获取文本?
- java - [3.1.0]使用自定义处理程序发布 API 时出错
- reactjs - Reactjs 如何检查状态常量以确定它是否已初始化?(以避免错误,如果它没有)
- c# - 超时后以 CPU 友好的方式从字典中删除项目