我正在運行一些java腳本和一些html控件。一切正常。與Asp.net的Javascript衝突runat =服務器屬性
除了當我添加runat =「server」屬性到html控件,所以我可以在後面的代碼中訪問它時,java腳本函數不起作用。這是常見的事情嗎?有沒有解決方法來使用java腳本的runat =「server」屬性?
或者我如何在後臺代碼中使用運行在服務器屬性中的方式訪問我的Html控件?
困惑。
我正在運行一些java腳本和一些html控件。一切正常。與Asp.net的Javascript衝突runat =服務器屬性
除了當我添加runat =「server」屬性到html控件,所以我可以在後面的代碼中訪問它時,java腳本函數不起作用。這是常見的事情嗎?有沒有解決方法來使用java腳本的runat =「server」屬性?
或者我如何在後臺代碼中使用運行在服務器屬性中的方式訪問我的Html控件?
困惑。
這是最有可能發生的歷史,因爲您的標記看起來是這樣的:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div runat="server" id="myDiv">
</div>
</asp:Content>
即您使用的是母版或其他什麼東西,充當INamingContainer
。這導致是寫出來的標記看起來像這樣的ID:
<div>
<div id="ContentPlaceHolder1_myDiv">
</div>
</div>
如果你使用asp.net 4您可以通過添加clientidmode="Static"
更改爲myDiv
標記,你會再拿到:
<div>
<div id="myDiv">
</div>
</div>
意味着你的JavaScript將再次工作。如果您使用的是早期版本的asp.net,那麼您需要按照SHAKKIR SHABBIR的建議進行操作,並使用<%=myDiv.ClientId%>
來引用javascript中的元素,以便獲得asp.net生成的ID的「重命名」版本。
Rob,這對我來說是很好的信息。我不知道ClientIDMode = Static ....感謝您的補充信息! –
好的。謝謝Shakir和Rob。我嘗試了兩種解決方案,並且Rob的工作!我也沒有意識到這個屬性。 Shakir,我敢肯定你的建議也可行,我一定在我身邊做錯了事。謝謝你們倆。最後一個問題,我有一個HTML按鈕提交,它調用JavaScript函數「初始化」。有什麼辦法可以在頁面加載事件中調用這個按鈕點擊事件或JavaScript函數嗎?多謝你們! –
這是一個完全不同的問題,所以,問一個新的=)並且,很高興我幫助:) – Rob
好的,runat =「server」是可以的。
您需要修改javascript。
如果你的控制輸入爲:
<input id="control_ID" runat="server" />
使用<%= control_ID.ClientId%>在JavaScript中引用控制
它將很好地工作。但是,如果這不起作用,請分享您的代碼。我會解決的!
<img alt="Calendar" onmouseover="javascript:this.style.cursor='hand';"
src="~/images/Calander_0.png"
id="ImgCalender"
onclick ="javascript:showCalendarControl('<%=txtAppointmentDate.ClientID %>','mm/dd/yyyy');"
runat="server" />
如果在服務器上運行設置的JavaScript不起作用
複製/粘貼問題,請 – HatSoft
EB嗨代碼。你正在推廣你的問題。相反,您需要具體說明您正嘗試通過代碼隱藏訪問哪個控件,否則此線程將變成20個問題的遊戲。 – Jeremy
我們真的需要看到你的代碼來幫助你。也就是說,我懷疑當你將'runat =「server」'添加到HTML控件時,控件的ID正在改變爲'ctl00_OriginalIdHere',這會導致你的javascript中斷。你使用的是什麼版本的asp.net? – Rob