jQuery下拉列表更改事件不会激发

时间:2011-04-14 10:08:12

标签: jquery asp.net-mvc

我编写了Asp.Net MVC应用程序并且想要实现级联下拉列表功能,但是我遇到了jQuery更改事件的问题。 我哪里错了?

使用Javascript:

<script charset="utf-8" type="text/javascript" language="javascript" src="<%= Url.Content("~/Content/jquery-1.4.1.js") %>"></script>
<script charset="utf-8" type="text/javascript" language="javascript">
  $(document).ready(function () {
      $("#ddlCategories").change(function () { alert("It worked!"); });
  });
</script>

MVC:

<%=Html.DropDownList("CategoriesId", (SelectList)ViewData["CategoriesList"], new { Id = "ddlCategories" })%>                    
<%=Html.DropDownList("ModelId", (SelectList)ViewData["ModelsList"], new { Id = "ddlModels" })%>  

HTML:

<select name="CategoriesId" id="ddlCategories">
  <option value="1">Thermage Solta Medical</option>
  <option value="2">Syneron</option>
  <option value="59">Deka</option>
</select>                    
<select name="ModelId" id="ddlModels">
  <option value="1">Thermage NXT RF</option>
  <option value="2">Thermacool TC</option>
</select>     

2 个答案:

答案 0 :(得分:4)

这看起来很明显,而且我知道这个问题已经过时了,但是如果有人在初始海报描述的问题到达此页面时,至少有一个可能的原因在使用继承的代码时很容易发生或者在一个大型项目上。

检查以确保select元素的ID是唯一的。我知道ID应该是唯一的,但是因为如果使用HtmlHelper类,ASP.NET MVC将为您创建ID,并且因为您可能在单个页面中呈现了许多部分,所以重复的可能性很高。在我的情况下,我有2个具有相同ID的元素,所以当我将事件附加到$('#selectID')时,它附加到第一个,而不是我想要的那个。

答案 1 :(得分:1)

工作正常,请参阅here。你确定你没有任何其他的javascript错误吗?