我有一个下拉列表,它位于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();
});
由于某种原因,这有效。不明白为什么,但它有效,这就是我所需要的。感谢大家的帮助。
答案 0 :(得分:0)
试试这个:
$(document).on('change','#ddlEventType',function(){
console.log($(this).val());
});
你是否对身体做了任何改变。对于preventDefault
,它应该是e.preventDefault();
答案 1 :(得分:0)
您可以按照以下方法使用onchange()
属性从select标记中获取所选值。
onchange()
直接调用到脚本函数。第一种方法:
$(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>