时间:2017-04-21 19:16:28

标签: javascript jquery

我需要从表单的下拉列表中返回用户点击的选项的值。我一直在尝试各种各样的事情,试图解决这个问题,而且我的失败是悲惨的。我正在使用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>

1 个答案:

答案 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;
}