我有一個ASP.NET Webforms頁面。在代碼的後面,一個onclick
屬性被添加到標籤控制和使用的代碼的文本框控制 - 生成JavaScript禁用內嵌onclick作爲asp.net控件加載的元素
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在頁面中不可用。
想想你正在嘗試做的。是否有可能知道服務器端的點擊事件是否應導致在onclick屬性中定義的行爲?如果點擊元素不應該觸發事件,最好離開onclick屬性服務器端。它會使你的有效載荷小一點。 – rstackhouse
無可否認,我正在尋求一種快速的前端「黑客」來禁用「onclick」事件而不改變代碼隱藏。 – mjmoody383