mvc dropdownlist - 捕获更改事件而不附加事件处理程序

时间:2010-11-12 00:59:07

标签: javascript asp.net-mvc

我知道我可以将更改事件附加到mvc中的html.dropdownlist,如下所示:

$('#ddList').change(function() {
            var value = $(this).val();


        });

但是,有没有办法可以更像

 <%=Html.DropDownList("ddList", Model.dropDown, new { @class = "Ddl", change = "ddListChange"  })%>

以下js函数:

function ddListChange() {
        alert("test");
    }

另外,还有一种方法比另一种更优选吗?

1 个答案:

答案 0 :(得分:4)

是的,您很接近,因为onchange属性正是​​您所寻找的。

<%= Html.DropDownList("ddList", Model.dropDown, new { @class = "Ddl", onchange = "ddListChange" }) %>

jQuery在事件的方法/参数中跳过事件名称的on部分,例如.click(...) / .bind('click',..)等于onClick属性。

使用javascript本身绑定事件处理程序是首选方法。就像将样式分离为单独的CSS文件一样,您将脚本分成您自己的脚本文件。这样可以使HTML文件更清晰,更易于阅读,此外还可以分离出表现形式和脚本正在做的事情。它还使您的页面更容易正常降级(即使未启用脚本也能正常工作)。

Here是一篇讨论该问题的文章