关于下拉列表中值变化的火灾事件

时间:2013-07-23 09:00:25

标签: javascript jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我的页面中有一个下拉列表。关于价值的变化,必须解雇一个事件。

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" }, }

我尝试了以下代码,但事件没有被解雇。

4 个答案:

答案 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侦听器时DOMevent实际上不存在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();

});