2012-04-16 16 views
9

Muszę wywołać kliknięcie <asp:LinkButton>.jQuery: trigger <asp: LinkButton> kliknij

Example1

Poniższa rzecz działa:

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

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

Przykład2

Teraz to samo z LinkButton jest nie robocze:

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

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

Potrzebuję do wywołać zdarzenie click of asp: LinkButton.

Odpowiedz

5

Dodaj CssClass właściwość do twojego LinkButton i użyj jej jako selektora.

Inne odpowiedzi sugerują użycie ASP.NET ClientID, aby uzyskać renderowany identyfikator LinkButton, co jest w porządku, ale to oznacza, że ​​musisz mieć swój skrypt w linii na stronie, a skrypt będzie działał tylko dla tego 1 przycisku .

Używanie klasy oznacza, że ​​możesz mieć wiele elementów uruchamiających to samo zdarzenie, co oznacza, że ​​nie musisz używać wbudowanego kodu po stronie serwera, aby go uruchomić.

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

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

Funkcja ta linia

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

Dajesz samą ID do obu z nich, które nie work.Try to zmienić.

Jeśli używasz stronę wzorcową następnie użyć, jak pokazano poniżej:

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

Jeśli nie używać strony wzorcowej następnie użyć poniższy kod:

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

Zamiast

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

Spróbuj

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

Zobacz tę odpowiedź, aby uzyskać więcej informacji: https://stackoverflow.com/a/943441/1207991

+0

hmm .... Tak naprawdę nigdy nie powinien być dobry powód, aby używać 'eval()'. – Spudley

+0

@Spudley Miałem to samo pytanie co oryginalny post, a mój znajomy z guru WWW wspomniał, że eval() również był zły, ale inne odpowiedzi nie działały dla mnie. Coś takiego jak to będzie działać zamiast naśladować to, co robi eval z javascriptem href, który jest dodawany przez LinkButton: 'WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions (" # <% = myBtn.ClientID%> "," ", true," SearchValidation "," ", false, true));' używając poprawnej grupy sprawdzania poprawności (między innymi). – Gloopy

+0

Nie powinieneś używać funkcji eval() z łączem, bo stracisz dane z widoku stanu. Używałem go w projektach i sprawiło mi to dość bólu, dopóki go nie odkryłem. Aby zachować stan przeglądania na poczcie zwrotnej, nie można użyć eval. –

1

wolno używać eval() z powodu przecieków bezpieczeństwa i luki. Najlepszym sposobem na to jest użycie natywnego zdarzenia typu js click.

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

w przypadku

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