如何在JavaScript中启用/禁用链接按钮?

5
在页面中有一个链接按钮,例如:
<asp:LinkButton ID="edit" runat="server" OnClick="edit_Click" Enabled="False">ویرایش</asp:LinkButton>

我希望在JavaScript中能够启用/禁用这个功能。

我使用了以下代码,但是只是设置了可见性:

var objedit = document.getElementById('<%= edit.ClientID.ToString() %>');
objedit.style.display = "none";

我���用这段代码,但是没有启用。
if (count == 1) {
    objedit.disabled = false;
} else {
    objedit.disabled = true;
}

我可以点击,但链接按钮被禁用。

在此输入图片描述


你想要什么?禁用还是隐藏元素? - pylover
显示元素。我想像“新项目”一样显示“编辑项目”。 - ar.gorgin
嘿,伙计,说波斯语,我没听懂你的意思是什么? - pylover
请查看我的更新示例 - Derek 朕會功夫
我使用这段代码在IE中运行,但未启用链接按钮。 - ar.gorgin
显示剩余2条评论
5个回答

1

所以,这就是你想要的吗?
http://jsfiddle.net/hzaR6/
http://jsfiddle.net/hzaR6/2/ -- 已更新,在Chrome和Firefox中测试通过

更新的方法

您可以使用“class”名称来定义禁用元素,从而可以更好地控制它们的样式等。

$("#link").toggleClass("disabled"); //This will simply toggle the class

还有CSS方面的内容

#link.disabled{
    z-index:-1;            /*Make it not clickable*/
    position:relative;
    opacity: .5;           /*Lighter*/
}​

你可以在这里做任何你想做的事情。

好旧的 form 元素方式

$("#edit").attr("disabled", false);
 -or-
document.getElementBy("edit").disabled = false;

这将禁用任何表单元素。如果您想启用它们,只需将false更改为true


var a = document.getElementBy("edit").disabled;

a 如果元素被禁用,将为true。否则它将是 false


1
我有同样的想法,但这个解决方案在asp.net链接按钮上不起作用(它们只是带有附加到其onclick处理程序的javascript的超链接)。请参见此处:http://jsfiddle.net/hzaR6/1/. - Daniel Szabo
@Derek - 你说得对。如果OP想通过JavaScript禁用LinkButton,他需要更改onclick事件或LinkButton本身,或者使用asp:button代替(在这种情况下,你的解决方案将起作用)。 - Daniel Szabo

1

这个链接应该会给你需要的一切。你不能真正地“禁用”一个链接按钮,因为它只是一个带有一些JavaScript附加的链接。基本上,你需要重新分配点击处理程序到返回void或false的某些内容。

你可以使用以下脚本引用链接的ID:

<script runat="server">
   var a = document.getElementById('<%= edit.ClientID.ToString() %>')
</script>

@argorgin:你看了我发的链接吗?你需要重新分配链接按钮的onclick事件处理程序:a.onclick = function(){}; - Daniel Szabo
我为链接按钮设置了属性(onclick)。 - ar.gorgin

1

禁用元素:

document.getElementById('<%# edit.ClientID %>').disabled = 'disabled';
//.ToString() is not necessary; ClientID is a string.

重新启用:

document.getElementById('<%# edit.ClientID %>').disabled = '';

当然,可以在文档(DOM)加载后完成。

0

试一下这个

var objedit = document.getElementById("edit"); //not editid (editid is a variable)
objedit.disabled = true; //if I'm not mistaken its true/false or disabled

我使用了这段代码,但链接按钮被禁用了。我的意思是,表单上的按钮没有显示出来。 - ar.gorgin
好的,我使用这段代码。我可以点击按钮,但链接按钮没有显示。 - ar.gorgin
1
等一下,我好像不太明白你想做什么,请你能否澄清一下你的问题? - Peter Wateber
请展示图片。我使用了这段代码(objedit.disabled = false;),但编辑项显示出来了。它应该显示为“新项目”。 - ar.gorgin
你不是禁用它,而是删除它。"(objedit.disabled == false) ? NewItem.style.display = none : NewItem.style.display = block; "其中NewItem是您的新项目的ID。我真的不明白你在试图做什么。 - Peter Wateber

0
document.getElementById("lnk").style.display = "none";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接