2012-04-16 13 views
9

ho bisogno di innescare lo scatto di un <asp:LinkButton>.jQuery: innesco <asp: LinkButton> cliccare

Example1

La cosa seguente sta lavorando:

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

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

Example2

Ora la stessa cosa con il LinkButton è non di lavoro:

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

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

ho bisogno di attivare l'evento click di un asp: LinkButton.

risposta

5

Aggiungi un CssClass proprietà al tuo LinkButton e usarlo come selettore.

altre risposte hanno suggerito di usare ASP.NET ClientID per ottenere l'ID reso del LinkButton, che va bene, ma questo significa che avere il vostro Inline script nella pagina, e lo script funziona solo per questo pulsante 1 .

Utilizzando una classe significa che puoi avere più elementi scatenanti lo stesso evento, e significa che non è necessario utilizzare il codice lato server in linea per farlo funzionare.

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

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

utilizzare questa linea

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

Stai dando stesso ID ad entrambi, che non lo fanno work.Try di cambiarlo.

Se stai usando pagina master quindi utilizzare come illustrato di seguito:

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

Se siete non utilizzare pagina master quindi utilizzare il codice qui sotto:

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

Invece di

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

Prova questa

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

Vedere questa risposta per ulteriori informazioni: https://stackoverflow.com/a/943441/1207991

+0

hmm .... Ci dovrebbe mai essere un buon motivo per usare 'eval()'. – Spudley

+0

@Spudley ho avuto la stessa domanda, come il post originale e il mio amico web guru detto che eval() era male come bene, ma le altre risposte in realtà non funziona per me. Qualcosa di simile funzionerà invece per simulare ciò che l'eval sta facendo con il href javascript che viene aggiunto dal LinkButton: 'WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions (" # <% = myBtn.ClientID%> "," ", true," SearchValidation "," ", false, true));' utilizzando il gruppo di validazione corretto (tra le altre cose). – Gloopy

+0

Non dovresti usare eval() con linkbutton, altrimenti perderai i dati sullo stato di visualizzazione. L'ho usato in un progetto e mi ha dato un bel mal di testa fino a quando ho scoperto. Per preservare il viewstate sul postback, non puoi usare eval. –

1

Non usare eval() a causa delle perdite di sicurezza e vulnerabilità. Il modo migliore per farlo è con l'utilizzo dell'evento click js nativo come quello.

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

nel tuo caso

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