2012-04-16 30 views
9

tôi cần kích hoạt nhấp chuột của <asp:LinkButton>.jQuery: trigger <asp: LinkButton> nhấp vào

example1

Điều sau đây được làm việc:

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

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

Ví dụ 2

Bây giờ điều tương tự với các LinkButton là không làm việc:

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

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

Tôi cần phải kích hoạt sự kiện nhấp chuột của một asp: LinkButton.

Trả lời

5

Thêm một CssClass tài sản của bạn để LinkButton và sử dụng nó làm công cụ chọn của bạn.

Câu trả lời khác đã đề xuất sử dụng ASP.NET ClientID để nhận ID được hiển thị là LinkButton, điều này có nghĩa là bạn phải có nội dung tập lệnh trong trang và tập lệnh sẽ chỉ hoạt động cho nút 1 này .

Sử dụng một lớp nghĩa là bạn có thể có nhiều yếu tố kích hoạt cùng một sự kiện và điều đó có nghĩa là bạn không cần phải sử dụng mã phía máy chủ nội tuyến để mã hoạt động.

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

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

Sử dụng dòng này

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

Bạn đang đem lại cho cùng ID cho cả hai trong số họ mà không làm work.Try để thay đổi nó.

Nếu bạn đang sử dụng trang chủ sau đó sử dụng như hình dưới đây:

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

Nếu bạn không sử dụng trang chủ sau đó sử dụng đoạn mã sau:

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

Thay vì

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

Hãy thử điều này

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

Xem câu trả lời này cho biết thêm: https://stackoverflow.com/a/943441/1207991

+0

hmm .... Có thực sự không bao giờ phải là một lý do chính đáng để sử dụng 'eval()'. – Spudley

+0

@Spudley Tôi đã có cùng một câu hỏi như bài đăng gốc và người bạn guru web của tôi đã đề cập rằng eval() cũng xấu nhưng các câu trả lời khác không thực sự hiệu quả với tôi. Một cái gì đó như thế này sẽ làm việc thay vì bắt chước những gì eval đang làm với href javascript được thêm vào bởi LinkButton: 'WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions (" # <% = myBtn.ClientID%> "," ", true," SearchValidation "," ", false, true));' bằng cách sử dụng nhóm xác thực chính xác (trong số những thứ khác). – Gloopy

+0

Bạn không nên sử dụng eval() với nút liên kết, hoặc bạn sẽ mất dữ liệu viewstate. Tôi đã sử dụng nó trong một dự án và nó đã cho tôi khá đau đầu cho đến khi tôi phát hiện ra. Để bảo vệ ViewState trên postback, bạn không thể sử dụng eval. –

1

bao giờ sử dụng eval() vì rò rỉ an ninh và dễ bị tổn thương. Cách tốt nhất để làm điều này là sử dụng sự kiện nhấp chuột js gốc như thế.

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

trong trường hợp của bạn

$(".myLink")[0].click(); 
Các vấn đề liên quan