簡體   English   中英

Javascript禁用內聯onclick為as.net控件加載的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM