jQuery下拉列表更改事件不触发

问题描述

| 我编写了Asp.Net MVC应用程序,想实现级联下拉列表功能,但是jQuery change事件有问题。 我哪里错了? 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>     
    

解决方法

工作正常,请参见此处。您确定没有其他JavaScript错误吗?     ,这看起来似乎很明显,而且我知道这个问题很旧,但是以防万一有人到达此页面并遇到最初发布者所描述的问题,在处理继承的代码或使用继承的代码时,很容易发生至少一种可能的原因。大型项目。 检查并确保选择元素的ID是唯一的。我知道ID应该是唯一的,但是由于如果使用HtmlHelper类,ASP.NET MVC会为您创建ID,并且由于您可能在单个页面中呈现了许多部分,因此重复的可能性很高。就我而言,我有2个具有相同ID的元素,因此当我将事件附加到$(\'#selectID \')时,它是附加到第一个元素,而不是我想要的那个。