0

我在 javascript 中有 aa href 标记和验证方法

我的 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.png" runat="server" />
</a>

单击链接时,我需要验证并删除thickbox

我的 javascript 类似这样

function validate() {

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

我有两个按钮来更改锚标签内的图像。基于使用按钮设置的图像,我正在删除厚盒类。意味着如果它是 Green.png 我需要显示thickbox.if Red.png 的弹出窗口我需要删除或禁用thickbox 或者不应该采取任何行动

<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";
}

当用户单击锚标记内的图像时调用验证,如果条件满足,则不会显示弹出窗口。但是thickbox的黑色透明屏幕仍然出现,用户需要点击它。我怎么能解决这个问题?

4

2 回答 2

0

查看thickbox.js 源代码,它没有提供取消的方法,因此请尝试手动调用它。

例如从锚点中删除thickbox 和href 属性

<a onclick="validate(); return false;" href="#" id="AnchorImage">
    <img id="ColorImageButton" src="SiteImages.png" runat="server" />
</a>

在您的验证函数中调用 tb_show 以在必要时显示thickbox

function validate() {

    if (document.getElementById('<%=ColorImageButton.ClientID%>').src.indexOf('Red.png') >= 0) {
        // Do nothing
    } else {
       //tb_show(caption, url, imageGroup)
       tb_show(null, "PopUpPage.aspx?KeepThis=true&TB_iframe=true&height=150&width=400", false);
    }
}
于 2012-07-18T05:12:10.453 回答
0

如果您想删除 class="thickbox",请更改您的 java 脚本,如下所示

document.getElementById("AnchorImage").removeAttribute('class'); 

否则,如果您想更改属性,请使用下面的代码

例如:对于文本框

document.getElementById("txt").removeAttribute("readonly",0);

(0,1) 将属性值声明为 true 或 false。

希望这可以帮助你

于 2012-07-18T05:23:30.720 回答