MVC4视图没有检测到JQuery

时间:2013-05-15 09:34:00

标签: javascript jquery asp.net-mvc-4

我有一个调用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

这里有什么问题?

6 个答案:

答案 0 :(得分:4)

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

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

还有一些可能的错误:

  • 页面中未引用jQuery。要检查这一点,请打开firebug,chrome dev工具或IE开发工具,检查是否有任何错误
  • 一个常见的错误是在视图中包含$(document).ready,并且只在底部引用jQuery。这将产生错误,因为此时$未知。可能的解决方案:
    1. 将代码移动到外部文件并在jQuery包含之后引用该文件
    2. 将您的jQuery声明移至head-section(不推荐,因为它会减慢页面加载速度)

答案 1 :(得分:3)

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

$('.test').change(function () { //在此部分您需要在测试中添加'.'

你忘记了这是一堂课。

答案 2 :(得分:1)

您还可以使用以下代码。

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

答案 3 :(得分:0)

Working FIDDLE Demo

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

答案 4 :(得分:0)

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

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

您的选择器也不正确。您没有class="test"的HTML元素。

请尝试$('#PropertyContent')

答案 5 :(得分:0)

请尝试按下面的代码获取其Id的dropDownList。 我为你找到了一个有效的例子:http://jsfiddle.net/pzzQu/

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