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 を使用できません。