2012-09-28 208 views
0

我有一個文本框;將參數傳遞給事件處理程序從aspx到jquery

<input runat="server" type="hidden" value="0" id="input1" name="input1_name">

我有一個div;

<div id="div1"> some content </div> 

我有一個單獨的.js文件,我有一個在頁面加載時加載的函數。在該功能我:

$("#div1").click(function(e){ definition; });

我想通過上面在上scenario.I單擊處理中提到的輸入控制的客戶端ID一直無法使用屬性ClientID以上上述的JavaScript文件。休息一切工作正常。

請指教如何將參數傳遞給aspx頁面上的控件的click處理程序到javascript文件(以獲得ClientID的方式)。

這是在.NET上。

請讓我知道萬一我需要在這裏發佈任何更多的細節,如果有什麼看起來模糊。

+0

你只需要打印值到DOM,將它變成輸入中的屬性,比如'值=「客戶端ID」,然後在你的點擊函數,引用$('#input1')。val();獲得價值,現在這將是客戶端ID。 – Ohgodwhy

+0

input1不會在js文件上用ID「input1」訪問。它是一個runat服務器控件。 –

回答

3

根據您使用的ASP.NET版本,您有幾個選項。

ASP.NET 4.0之前,你可以做這樣的事情:

<script type="text/javascript"> 
    function DoSomething(){ 
     alert('<%= Control.ClientID %>'); 
    } 
</script> 

在ASP.NET 4.0中引入的新功能:ClientIDMode

<asp:TextBox ID="myCustomId" runat="server" Width="65%" ClientIDMode="Static" /> 

將輸出:

<input id="myCustomId" style="width: 65%" name="ctl00$MasterPageBody$ctl00$txtEcho2" /> 

如果您使用靜態ClientIDMode,則可以在JavaScript中使用Id任何問題。

這裏是一個不錯的博客,解釋了不同的選擇:ASP.NET 4.0 ClientID Overview

+0

謝謝Wouter。 Incase我正在使用較舊的版本,對於相同的解決方案,有什麼可以做的。正如你在第一部分中提到的,.ClientID只能在腳本是其他js文件的一部分時使用。糾正我,如果我錯了。 –

+0

第一部分適用於舊版本!由於<%= %>服務器會將正確的值放入JavaScript中。 –

+0

上述文章的內容非常豐富。有趣的閱​​讀。 –

相關問題