2013-05-15 35 views
7

我有一個@ Html.DropDownList,它調用一個jquery函數。但它未能調用該函數。 我tried-MVC4視圖無法檢測JQuery

$(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 

請告訴我錯在這裏?

+0

什麼是錯誤?你在控制檯中看到任何錯誤嗎?你在頁面中加入了「jQuery」嗎? – 2013-05-15 09:35:56

+0

此外,您還必須編寫'$('。test')'而不是'$('test')'。因爲你想用'test'類訪問元素。 – 2013-05-15 09:37:05

+0

@ Mojtaba-我已更新我的問題。其實我試過$('。test')。我沒有收到任何錯誤。它沒有調用該函數! – Sandy

回答

4

你的jQuery選擇是錯誤的,使用id選擇器來代替:

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

一些更多的可能出現的錯誤:

  • jQuery是不是在頁面引用。要檢查這一點,請打開螢火蟲,Chrome開發工具或IE開發工具,並檢查是否有任何錯誤
  • 一個常見錯誤是在視圖中包含$(document).ready,並且只在底部引用jQuery。這會產生一個錯誤,因爲那時$未知。可能的解決方案:
    1. 移動代碼到外部文件,並說明了jQuery列入後文件
    2. 將您的jQuery聲明頭部分(不推薦,因爲它會減慢頁面加載)
+0

不,它是我的錯,當我複製到堆棧溢出時,實際上。在那兒。 – Sandy

+0

您是否在控制檯日誌中看到任何錯誤?在調用$(document).ready之前,你是否包含jQuery? – Kenneth

+0

我沒有收到任何錯誤控制檯,我已經包括'@ Scripts.Render(「〜/ bundles/jqueryval」)' – Sandy

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

$('.test').change(function() { //在這部分ü需要在測試添加'.'

ü忘記ŧ它是一個階級。

+0

你做得很好@Vond Ritz ..但桑迪沒有看到你做什麼.. – Olrac

+0

我已經更新了我的問題。其實我嘗試用'$('。test')' – Sandy

0

Working FIDDLE Demo

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

它不工作:( – Sandy

+0

你會爲你的'@ Html.DropDownList'編寫**生成的**代碼嗎? – 2013-05-15 09:55:53

+0

我沒有得到你Mojtaba – Sandy

1

您還可以使用下面的代碼。

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

某處添加以下行視圖或佈局:

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

而且你的選擇是不正確的。您沒有使用class="test"的HTML元素。

嘗試用$('#PropertyContent')代替。

0

請嘗試像下面的代碼一樣通過它的Id獲取dropDownList。 我爲您舉了一個實例:http://jsfiddle.net/pzzQu/

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