如何在弹出窗口显示之前验证锚标记?
问题描述:
我有一个图像标签里面的锚标签,我动态地改变基于点击按钮的锚标签内的图像。 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');
}
答
使用Javascript你可以做这样的事情:
-
附上一个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>
-
定义
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='#'; } }
我想这一点,现在弹出不来。但厚盒子的背景仍然存在。我需要点击黑屏来隐藏它。 – niknowj 2012-07-17 05:22:14
@niknowj我无法提供完全符合您需要的答案,因为我没有完整的代码副本,可以让我重现您的体验。如果您有其他问题,请发布另一个问题或编辑此问题,添加更多详细信息。 – Icarus 2012-07-17 05:29:22
@lcarus,好的,我会做的。 – niknowj 2012-07-17 06:14:33