我需要从表单的下拉列表中返回用户点击的选项的值。我一直在尝试各种各样的事情,试图解决这个问题,而且我的失败是悲惨的。我正在使用Google跟踪代码管理器,并在Simo的博客文章中发布。在他详细说明如何捕获所选项目的部分中,他使用代码:
function() {
var selectList = {{Form Element}}.querySelector('#selectListId');
return selectList ? selectList.options[selectList.selectedIndex].value : undefined;
}
上下文:"要在下拉列表中捕获所选项目值,检查列表本身的值将无法正常工作,正如您直观所期望的那样。相反,您需要访问所选列表中的选项,然后捕获其值。描述:首先,脚本检索ID为selectListId的下拉列表。接下来,它返回列表中所选选项的值。如果列表不存在,则脚本将返回undefined。
我正在使用的表单使用类而不是ID来表示元素,所以我会想到使用"。"而不是"#"会解决我的问题,但没有运气。即我用过:
function() {
var selectList = {{Form Element}}.querySelector('.SelectDropdown.js-dropdown-usertype');
return selectList ? selectList.options[selectList.selectedIndex].value : undefined;
}
有关如何正确使其作为自定义javascript变量工作的任何解决方案吗?
这是我正在使用的html:
<form id="submit_interest_fish" class="js_prevalidation_form">
<select class="SelectDropdown js-dropdown-usertype" required="">
<option value="New" selected="">I'm New Here</option>
<option value="Pro">I'm a Pro User</option>
</select>
答案 0 :(得分:0)
使用jQuery将选定项的值存储在js变量中很简单 -
let selectVal;
let selectList = $('.SelectDropdown.js-dropdown-usertype');
$(selectList).change(function() {
selectVal = value($(this));
console.log(selectVal);
});
function value(selectList) {
return selectList ? selectList.val() : undefined;
}