【问题标题】:jquery chenge function not working on dropdownjquery更改功能在下拉列表中不起作用
【发布时间】:2012-03-27 09:20:39
【问题描述】:

下拉菜单上的 jquery 更改功能在我的应用程序中不起作用,并且在 jfFiddle 中起作用
应用程序代码


<select id="title" name="title"><option value="">-select-</option>
  <option value="Mr">Mr.</option>
  <option value="Mrs">Mrs.</option>
  <option value="Miss">Miss.</option>
  <option value="Other">Other</option>
  </select>



脚本

<script type="text/javascript">

$(document).ready(function () {

    $("#title").change(function () {
        var value = $("#title").val();
        alert(value);
    });
});


为什么?
是不是我做错了什么???

【问题讨论】:

  • 你有什么错误吗?您确定小提琴中的 HTML 与输出时浏览器中的 HTML 匹配吗?
  • 请添加生成的标记而不是您的 asp.net 代码。
  • 是的,我确信我在小提琴中使用的标记只是生成的 html 的复制粘贴。

标签: jquery asp.net asp.net-mvc-3 html.dropdownlistfor


【解决方案1】:

尝试为您的下拉菜单指定一个类:

@Html.DropDownListFor(
    model => model.title, 
    new[] { 
        new SelectListItem { Text = "Mr", Value = "Mr" }, 
        new SelectListItem { Text = "Mrs", Value = "Mrs" }, 
        new SelectListItem { Text = "Miss", Value = "Miss" }, 
        new SelectListItem { Text = "Other", Value = "Other" } 
    }, 
    "-select-",
    new { @class = "myddl" }
)

然后执行一个类选择器而不是一个id选择器:

$(document).ready(function () {
    $('.myddl').change(function () {
        // use $(this) to get the currently changed dropdown list here
        // instead of performing yet another selector
        var value = $(this).val();
        alert(value);
    });
});

我怀疑您有多个下拉列表具有相同的 id(在 &lt;table&gt; 或其他内容中),这是无效的 HTML。

【讨论】:

  • 它有效,但问题仍然存在,即为什么 jquery 选择器不按其 id 选择元素(我可以在 dom 看到只有一个 id 为 "title" 的元素)?
  • @djCool,如果你真的有一个带有id="title" 的 DOM 元素,那么如果 jQuery 中的 id 选择器不起作用,我会感到非常惊讶。这对于我认为的 jQuery 项目来说真的是灾难性的。你是如何验证你有一个 id="title" 的 DOM 元素的?你在使用 AJAX 吗?您是否正在向页面动态添加元素?
猜你喜欢
  • 2018-07-03
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多