2012-04-16 102 views
9

我需要触发点击<asp:LinkButton>jQuery:触发<asp:LinkBut​​ton>点击

例1

下面的事情是工作:

<asp:Button ID="myBtn" runat="server" /> 

$("#myBtn").trigger("click"); 

例题

现在用的LinkBut​​ton同样的事情是工作:

<asp:LinkButton ID="myBtn" runat="server" /> 

$("#myBtn").trigger("click"); 

我需要触发一个asp的点击事件:LinkBut​​ton

回答

5

添加CssClass财产到您的LinkButton并将其用作您的选择器。

其他答案建议使用ASP.NET ClientID得到LinkButton,这是很好的渲染ID,但是这意味着你必须有您在网页中内嵌的脚本,脚本将只此1个按钮的工作。

使用类意味着您可以有多个元素触发相同的事件,这意味着您不需要使用内联服务器端代码来使其工作。

<asp:LinkButton ID="myBtn" runat="server" CssClass="myLink" /> 

$(".myLink").trigger("click"); 
2

使用此行

$("#<%= myBtn.ClientID %>").trigger("click"); 
1

你给同一ID他们两人这不work.Try去改变它。

如果您使用母版页,然后使用如下图所示:

<script type="text/javascript"> 
      $(document).ready(function() { 
       $("#<%=myBtn.ClientID%>").click(function() { 
       $('#<%=hyperlinkID.ClientID%>').trigger('click'); 
      }); 
    </script> 

如果你不使用母版页,然后使用下面的代码:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#myBtn").click(function() { 
      $('#hyperlinkID').trigger('click'); 
     }); 
</script> 
11

而不是

$("#myBtn").trigger("click"); 

试试这个

eval($("#myBtn").attr('href')); 

看到这个答案的详细信息:https://stackoverflow.com/a/943441/1207991

+0

嗯....真有不应该是一个很好的理由使用'的eval()'。 – Spudley 2012-04-17 20:42:37

+0

@Spudley我和原来的帖子有同样的问题,我的网络专家朋友提到eval()也不好,但其他答案实际上并不适用于我。 类似这样的工作,将模仿eval与LinkBut​​ton添加的href javascript做什么:WebForm_DoPostBackWithOptions(新的WebForm_PostBackOptions(“#<%= myBtn.ClientID%>”,“”,true,“ SearchValidation“,”“,false,true));'使用正确的验证组(除其他外)。 – Gloopy 2012-04-18 04:00:51

+0

你不应该用linkbutton来使用eval(),否则你将失去viewstate数据。我在一个项目中使用它,直到我发现它让我感到头痛。为了在回发时保留视图状态,你不能使用eval。 – 2013-09-02 21:46:30

1

不要使用,因为安全漏洞和脆弱性的eval()。最好的方法是使用像这样的原生js点击事件。

$('[selector]')[0].click(); 

你的情况

$(".myLink")[0].click();