禁用 <ASP:LinkButton> 的回发(postback)

63

我有一个ASP.NET的linkbutton控件在我的表单上。我想在客户端使用它进行javascript操作,并防止它向服务器提交表单。(我想使用linkbutton控件是为了能够样式定制和某些情况下禁用它,所以直接使用a标签并不是首选方法)。

如何防止它向服务器提交表单?

17个回答

1

在onclick事件上调用JavaScript函数。


1

如果您想保留滚动位置,还可以做另外一件事:

<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />

0

似乎没有人这样做:

createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else {  this.innerHTML='Please Wait'; }");

这似乎是唯一可行的方法。


0
为什么不使用一个空的 Ajax 更新面板并将链接按钮的点击事件与其关联呢?这样只有更新面板会被更新,从而避免了页面回发,并且可以运行你的 JavaScript。

0
在 jQuery 的 ready 函数中,你可以像下面这样做 -
var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);

1
欢迎来到StackOverflow!由于OP没有提到JQuery,你的回答有点离题。为了使回答更好,你可以在这里包含有关如何将JQuery整合进来的其他上下文。另一方面,由于问题已经在5年前被问过和回答过(很多次),因此现在只有非常相关的答案才有用。 - dg99

-1

使用HTML链接而不是ASP链接,您可以在HTML链接之间使用标签来进行服务器端控制。


-1

你可能还想让客户端函数返回 false。

<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />

您也可以考虑:

<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>

我使用可点击的类来设置指针、颜色等,使其外观类似于锚标签,但我不必担心它被提交回来或者需要使用 href="javascript:void(0);" 技巧。

2
OnClick绑定服务器端事件,而不是客户端事件。onclientclick是客户端事件。 - Glenn Slaven

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