[英]Javascript to disable inline onclick for element loaded as asp.net control
我有一個ASP.NET Webforms頁面。 在代碼隱藏中,使用代碼將onclick
屬性添加到標簽控件和文本框控件中 -
lblName.Attributes.Add("onClick", "javascript:location.href='NameForm.aspx?id=" & CStr(fnRetRow("name_id")) & "';")
txtName.Attributes.Add("onClick", "javascript:location.href='NameForm.aspx?id=" & CStr(fnRetRow("name_id")) & "';")
生成以下HTML元素。 (注意,這些最終位於頁面上<table><tr>
...元素的幾個嵌套層中。) -
<td class="formlabel">
<span id="lblName" class="formlabel" onclick="javascript:location.href='NameForm.aspx?id=123';"></span>
</td>
<td class="forminputtxt">
<input id="txtName" class="forminputtxt" onclick="javascript:location.href='NameForm.aspx?id=123';">
</td>
問題:如何在aspx頁面中使用簡單的JavaScript函數在頁面加載(或加載元素)后禁用這些onclick
屬性?
我嘗試了以下選項但沒有成功 -
<script language = "javascript">
window.onload = function() {
document.getElementById('lblName').onclick = ''; // option 1 for label
document.getElementById('txtName').onclick = ''; // option 1 for textbox
document.getElementById('lblName').removeAttribute("onclick"); //option 2 for label
document.getElementById('txtName').removeAttribute("onclick"); // option 2 for textbox
}
</script>
選項2無效。 文本框的選項1無效。
標簽的選項1以某種方式禁用鏈接; 但是,內聯javascript仍顯示在頁面的最終HTML中。 這是可以接受的,但並不理想。
在頁面加載后禁用(或理想地刪除)兩個onclick
屬性的簡單方法是什么?
注意:頁面中沒有JQuery。
為這兩個事件指定null
document.getElementById('lblName').onclick = null;
document.getElementById('txtName').onclick = null;
它不會從頁面的“查看源”中刪除onclick="javascript:location.href=...
”,因為這是服務器端代碼呈現HTML的方式,但它會有效地禁用“onclick”事件。
演示: http : //jsfiddle.net/qwE74/1/ (請注意,在您的HTML“SPAN”標簽未關閉時,我為演示更正了它)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.