2012-08-14 118 views
0

我有一些東西,這取決於如果它被點擊或未點擊會做些事情。事情是,我試圖做一個onclick,它不會開火。選擇/取消選擇複選框還需要其他一些東西嗎?點擊一個asp:複選框會觸發什麼事件?

ASP:

<div id = "gridDiv"> 
    Turn on/off some code: 
    <asp:Checkbox runat="server" name = "gridlock" id = "gridLockAttribute" /> 
</div> 

客戶方:

$("#gridLockAttribute").click(function(){ 
    try{ 
     alert("test"); 
    }catch(err){ 

    } 
}); 

它似乎沒有提醒。

+0

只要您在$(document).ready( – 2012-08-14 21:54:04

+0

)中運行該javascript,就應該沒問題在註冊點擊處理程序之前仔細檢查該元素是否存在(例如,通過將該方法封裝在[dom ready函數] ://api.jquery.com/ready/))。你也可以嘗試使用['.change()'](http://api.jquery.com/change),儘管點擊也應該被觸發 – nbrooks 2012-08-14 21:54:32

+0

你應該在'catch'塊中使用'console.log(err)'或者'alert(err)'... – ahren 2012-08-14 21:56:21

回答

3

如果控件位於另一個控件中,ASP.NET可能會名稱變形,因此諸如$("#gridLockAttribute")之類的內容將無法工作。您可以選擇使用:

$("#<%= gridLockAttribute.ClientID %>") 

或者:

$('[id$=gridLockAttribute]') 

我更喜歡第一種方法。

此外,如果您試圖讓複選框自動導致回發,您需要將複選框上的AutoPostBack屬性設置爲True

+0

我不是想要導致回發,但我會檢查是否有效。 – Fallenreaper 2012-08-14 21:58:35

+0

Don別忘了那個你可以在你最喜歡的JavaScript調試器中設置一個斷點,以查看元素是否被命名爲mangled。 – FishBasketGordo 2012-08-14 22:00:33

+0

這似乎解決了問題....現在,我可以打代碼。我只需要做到這一點,如果(這是選擇){...}其他{...} – Fallenreaper 2012-08-14 22:01:02

相關問題