7

我有一个调用 jquery 函数的@Html.DropDownList。但它未能调用该函数。我努力了-

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

@Html.DropDownList("PropertyContent", ViewBag.PropertyList as List<SelectListItem>, new { @class="test"})

function test() {
        alert("1");
    }

@Html.DropDownList("PropertyContent", ViewBag.PropertyList as List<SelectListItem>, new { onchange="test();"})


@Scripts.Render("~/bundles/jqueryval") is also included in the view

这里有什么问题?

4

6 回答 6

4

您的 jQuery 选择器错误,请改用 id-selector:

$(document).ready(function () {
    $('#PropertyContent').change(function () {
        alert("1");            
    });
});

还有几个可能的错误:

  • 页面中未引用 jQuery。要检查这一点,请打开 firebug、chrome dev tools 或 IE dev tools 并检查您是否有任何错误
  • 一个常见的错误是在视图中包含 $(document).ready,并且只在底部引用 jQuery。这将产生错误,因为此时$未知。可能的解决方案:
    1. 将代码移动到外部文件并在 jQuery 包含后引用该文件
    2. 将您的 jQuery 声明移动到头部(不推荐,因为它会减慢页面加载速度)
于 2013-05-15T09:35:26.147 回答
3
$(document).ready(function () {
    $('.test').change(function () {
        alert("1");            
    });
});

$('.test').change(function () {// 在这部分你需要添加'.'测试

你忘了这是一门课。

于 2013-05-15T09:37:16.607 回答
1

您也可以使用以下代码。

$(document).ready(function () {
    $(".test").live("change",function () {
        alert("1");            
    });
});
于 2013-05-15T11:14:18.670 回答
0

在视图或布局中的某处添加以下行:

@Scripts.Render("~/bundles/jquery")

您的选择器也不正确。您没有带有class="test".

试试$('#PropertyContent')吧。

于 2013-05-15T11:32:05.453 回答
0

请尝试通过其 ID 获取 dropDownList,如下面的代码。我为您提供了一个工作示例:http: //jsfiddle.net/pzzQu/

$(document).ready(function () {
    $('#PropertyContent').change(function(){
        alert('1');
    });
});
于 2014-05-23T13:56:03.107 回答
0

Working FIDDLE Demo

$(function () {
    $('#PropertyContent').change(function () {
        alert("1");
    });
});
于 2013-05-15T09:46:30.690 回答