2012-07-16 77 views
0

我有一个图像标签里面的锚标签,我动态地改变基于点击按钮的锚标签内的图像。 button1设置Red.png图片,button2设置Green.png图片。我想验证锚标记中的哪个图像,如果它是Green.png,我需要显示thickbox,如果它是Red.png,则不应该发生操作。我怎么能做到这一点?如何在弹出窗口显示之前验证锚标记?

//我的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个按钮 - Button1以设置红色图像,BUTTON2树立绿色形象

<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'); 
    } 

回答

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='#'; 
        } 
    }​ 
    
+0

我想这一点,现在弹出不来。但厚盒子的背景仍然存在。我需要点击黑屏来隐藏它。 – niknowj 2012-07-17 05:22:14

+0

@niknowj我无法提供完全符合您需要的答案,因为我没有完整的代码副本,可以让我重现您的体验。如果您有其他问题,请发布另一个问题或编辑此问题,添加更多详细信息。 – Icarus 2012-07-17 05:29:22

+0

@lcarus,好的,我会做的。 – niknowj 2012-07-17 06:14:33

相关问题