mvc 下拉菜单更改不触发 jquery

问题描述 投票:0回答:6

我有一个下拉列表:

@Html.DropDownList("CharacterID")

以及以下 jQuery:

$(document).ready(function(){
    $("#CharacterID").on(change, "#CharacterID", (function () {
        alert("I've Changed");
        //var id = $('#CharacterID').val();
    }));
});

当我更改下拉选项之一时,它不会触发。

我可以做什么来解决这个问题?我看过类似的问题和答案,并尝试合并这些问题和答案,但没有成功。

当我尝试在 JSFiddle 中运行它时,会发生以下情况:http://jsfiddle.net/vgMdF/

jquery asp.net-mvc drop-down-menu
6个回答
2
投票

两个问题:

  1. change
    是一个字符串,而不是一个魔法变量。添加它周围的引号。
  2. 此外,还需要在CharacterID 的任何祖先上调用on 方法。对于大多数情况,最好使用
    $(document).on()

.

$(document).ready(function(){
    $(document).on("change", "#CharacterID", (function () {
        alert("I've Changed");
        //var id = $('#CharacterID').val();
    }));
});

您可以在这里看到它的工作原理:http://jsfiddle.net/h3q5d/

当你的整个页面,并加载 jquery - 它也可以工作:http://jsfiddle.net/vgMdF/1/


1
投票

您需要在演示中包含 jQuery,它应该按预期工作。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

对于

jsFiddle
,您可以从
Extensions & Frameworks
选项卡中选择 jQuery 版本。

更新了小提琴


0
投票

你能试试这个吗:

$(document).ready(function(){
  $("#CharacterID").on('change',function () {
    alert("I've Changed");
    //var id = $('#CharacterID').val();
  });
});

0
投票

这里的问题是,你的 jsfiddle 永远不会包含 jquery,那就是它永远不会运行

检查这个小提琴 http://jsfiddle.net/qg5Dh/1/

$(document).ready(function () {
    $(document).on("change", "#CharacterID", (function () {
        alert("I've Changed");
        //var id = $('#CharacterID').val();
    }));
});

它运行良好,代码运行良好


0
投票

试试这个:

$(document).ready(function () {    
$('#CharacterID').change(function(){
        alert("test");
    });
});   

0
投票

我知道这可能是一篇旧帖子,但我认为它可能对某人有帮助。

我的问题是页面上的某些标签创建了空间,例如

© www.soinside.com 2019 - 2024. All rights reserved.