我的页面中有一个下拉列表。关于价值的变化,必须解雇一个事件。
HTML /剃须刀
@Html.DropDownList("Reason", new[] { new SelectListItem { Text="-Select-", Value= "-Select-",Selected=true }, new SelectListItem { Text="Price", Value= "Price" }, new SelectListItem { Text="3P", Value= "3P" }, new SelectListItem { Text="Freight Collect", Value= "Freight Collect" }, new SelectListItem { Text="Change in Relationships", Value= "Change in Relationships" }, }
我尝试了以下代码,但事件没有被解雇。
答案 0 :(得分:1)
您需要在文档准备好时绑定事件处理程序,因此您使用$(function () {});
:
$(function () {
$("#Reason").on("change", function () {
// You're referring to the object itself, so you can use $(this).
alert(this.value);
UpdateRecords();
});
});
答案 1 :(得分:0)
当您尝试附加#Reason
侦听器时DOM
中event
实际上不存在DOM
,这又是一个问题。在执行此操作之前,您需要确保$(document).ready(function() {
// Code here..
});
$(function(){
// Code here...
});
已准备就绪。
使用
{{1}}
它们都是相同的
答案 2 :(得分:0)
我尝试复制您的代码以尝试让您的解决方案正常运行。以下是我提出的并且经过测试。请编辑以适应您的方案。
为了便于阅读,我缩进了您的下拉标记:
@Html.DropDownList("Reason",
new[]
{
new SelectListItem { Text="-Select-", Value= "-Select-", Selected = true },
new SelectListItem { Text="Price", Value= "Price" },
new SelectListItem { Text="3P", Value= "3P" },
new SelectListItem { Text="Freight Collect", Value= "Freight Collect" },
new SelectListItem { Text="Change in Relationships", Value= "Change in Relationships" }
}
)
结果输出如下:
<select id="Reason" name="Reason">
<option selected="selected" value="-Select-">-Select-</option>
<option value="Price">Price</option>
<option value="3P">3P</option>
<option value="Freight Collect">Freight Collect</option>
<option value="Change in Relationships">Change in Relationships</option>
</select>
要触发事件,您需要在下拉列表中添加一个侦听器。在jQuery中,这很容易订阅on change事件。
你的jQuery看起来像这样:
<script>
$(document).ready(function () {
$('#Reason').change(function () {
alert('select value has changed to ' + $('#Reason').val());
UpdateRecords();
});
});
</script>
我希望这会有所帮助。
答案 3 :(得分:-1)
尝试以下代码
$('#Reason').change(function () {
$("#yourdropdownid option:selected").text();
或
$("#yourdropdownid option:selected").val();
});