0

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

4

1 に答える 1