【问题标题】:jQuery drop down list change event not firejQuery下拉列表更改事件不会触发
【发布时间】:2015-10-03 18:52:30
【问题描述】:

我编写了 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>     

【问题讨论】:

标签: jquery asp.net-mvc


【解决方案1】:

这似乎很明显,而且我知道这个问题已经过时了,但万一有人到达此页面时遇到最初发帖人所描述的问题,在使用继承代码时,至少有一个可能的原因很容易发生或大型项目。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多