无法使用Jqoery获取下拉列表项的值

时间:2016-10-11 12:24:05

标签: javascript jquery html

我有一个下拉列表,它位于pop模式中。下拉列表如下所示:

<select name="EventTypeId" class="form-control formTextBox" id="ddlEventType">
    <option value="">Please Select</option>
    <option value="1">Assessment</option>
    <option value="2">Single Session</option>
    <option value="3">Group Session</option>
</select>

我的jquery看起来像这样:

$("body").on("change", "#ddlEventType", function (e) {
var test = $('#ddlEventType').val();
});

它点击onchange函数没问题,但每当我在ddl上选择一个选项时,测试变量总是“”,永远不会得到值。任何人都可以帮我解决这里出了什么问题吗?是因为ddl在模态弹出窗口内吗?我实际上在一个不同的模态弹出窗口中有一个ddl,它具有完全相同的代码,并且它完全可以正常工作。年龄也没有冲突的ids。无法弄清楚为什么我没有得到这个价值。

更新

我给ddl一个类名ddlEventType,并将jquery更改为

$("body").on("change", "#ddlEventType", function (e) {
var test = $('.ddlEventType').val();
});

由于某种原因,这有效。不明白为什么,但它有效,这就是我所需要的。感谢大家的帮助。

2 个答案:

答案 0 :(得分:0)

试试这个:

  $(document).on('change','#ddlEventType',function(){
    console.log($(this).val());
  });

你是否对身体做了任何改变。对于preventDefault,它应该是e.preventDefault();

答案 1 :(得分:0)

您可以按照以下方法使用onchange()属性从select标记中获取所选值。

  1. 第一种方法我已将onchange()直接调用到脚本函数。
  2. 第二种方法我直接向select标签提供了一个函数,然后在脚本文件中调用了该函数。
  3. 第一种方法:

    $(document).ready(function(){
    $("#ddlEventType").change(function(){
        alert($(this).val());
    });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select name="EventTypeId" class="form-control formTextBox" id="ddlEventType">
        <option value="">Please Select</option>
        <option value="1">Assessment</option>
        <option value="2">Single Session</option>
        <option value="3">Group Session</option>
    </select>

    第二种方法:

    function get_value(a)
    {
      alert(a);
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select name="EventTypeId" class="form-control formTextBox" id="ddlEventType" onchange="get_value(this.value)">
        <option value="">Please Select</option>
        <option value="1">Assessment</option>
        <option value="2">Single Session</option>
        <option value="3">Group Session</option>
    </select>