0

内部に 1 つのイメージ タグを含むアンカー タグがあり、ボタンのクリックに基づいてアンカー タグ内のイメージを動的に変更しています。button1 で Red.png 画像を設定し、button2 で Green.png 画像を設定します。アンカータグ内のどの画像を検証したいのですか。それが Green.png の場合、Red.png の場合はシックボックスを表示する必要があります。アクションは実行されません。どうすればこれを行うことができますか?

//my aspx コード-イメージ タグ付きのアンカー タグ

<a onclick="validate();" href="PopUpPage.aspx?KeepThis=true&TB_iframe=true&height=150&width=400"
      class="thickbox" id="AnchorImage" >
<img id="ColorImageButton" src="SiteImages/Red.png" runat="server" />
</a>

//2 つのボタン - ボタン 1 で赤の画像を設定し、ボタン 2 で緑の画像を設定します

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />

    protected void Button1_Click(object sender, EventArgs e)
    {
        ColorImageButton.Src = "~/SiteImages/Red.png";
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        ColorImageButton.Src = "~/SiteImages/Green.png";
    }

更新: 回答に基づいて、リンクを削除するために JavaScript を追加しましたが、まだシックボックスの黒い画面の背景があります

function validate() {

    if (document.getElementById('<%=ColorImageButton.ClientID%>').src.indexOf('Red.png') >= 0) {
                         document.getElementById('AnchorImage').removeAttribute('href');
    }
4

1 に答える 1

1

Javascript を使用すると、次のようなことができます。

  1. 次のように onclick ハンドラーをアンカーにアタッチします。

    <a onclick="validate();" href="PopUpPage.aspx?KeepThis=true&TB_iframe=true&height=150&width=400"
      class="thickbox" id="AnchorImage"  >
    <img id="ColorImageButton" src="SiteImages/Red.png" runat="server" />
    </a>
    
  2. 関数を定義しvalidateます。

    ​function validate()
    {
       //If image is red; change the href value to a hash sign
       //so it doesn't do anything
       if(document.getElementById('<%=ColorImageButton.ClientID%>').src.indexOf('Red.png')>=0)
       {
          document.getElementById('AnchorImage').href='#';
       }
    }​
    
于 2012-07-16T13:17:48.570 に答える