2013-03-05 36 views
12

Tôi có một câu hỏi, tôi có một nút như dưới đây:Làm thế nào để gọi một asp: Nút OnClick sự kiện bằng cách sử dụng JavaScript?

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Visible="false" /> 

sau đó tôi có nút HTML như như dưới đây:

<button id="btnsave" onclick="fncsave">Save</button> 

Tôi có javascript dưới đây:

<script type="text/javascript"> 
    function fncsave() 
    { 
     document.getElementById('<%= savebtn.OnClick %>').click() 
    } 
</script> 

Câu hỏi của tôi bây giờ là, làm thế nào tôi có thể gọi asp: Button OnClick từ nút HTML? Tôi đã đọc bạn có thể làm điều này bằng cách gọi từ JavaScript bằng Id nhưng không hoạt động.

Mọi trợ giúp sẽ thực sự đánh giá cao điều đó.

Cảm ơn bạn

+0

có thể là một dupe ... @Mortalus Có mát mẻ để gọi phương thức __doPostBack? Tôi chưa bao giờ làm điều đó trong thực tế. –

+0

Tôi không chắc chắn như những gì bạn có nghĩa là "mát mẻ" khi đề cập đến một phương pháp JavaScript :) nhưng có bạn có thể sử dụng nó. Nếu bạn có thể mô phỏng một nút khách hàng thực sự, hãy nhấp vào một trong các câu trả lời đơn giản vì đôi khi bạn có thể muốn đăng một phần và sau đó câu trả lời trong câu hỏi tôi đã đăng sẽ không hoạt động. – Mortalus

Trả lời

22

Đặt style= "display:none;". Bằng cách đặt visible=false, nó sẽ không hiển thị nút trong trình duyệt. Vì vậy, kịch bản phía khách hàng sẽ không thực thi.

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" style="display:none" /> 

đánh dấu html nên

<button id="btnsave" onclick="fncsave()">Save</button> 

Thay đổi javascript để

<script type="text/javascript"> 
    function fncsave() 
    { 
     document.getElementById('<%= savebtn.ClientID %>').click(); 
    } 
</script> 
+0

Các onclick thích hợp sẽ là 'onclick =" fncsave(); trả về false; "' –

+0

Trình tiết kiệm cuộc sống. Nếu tôi sử dụng 'return false;' nó có ngăn được PostBack không? – SearchForKnowledge

+0

Có ngăn chặn – Sunny

6

Nếu bạn đang mở để sử dụng jQuery:

<script type="text/javascript"> 
function fncsave() 
{ 
    $('#<%= savebtn.ClientID %>').click(); 
} 
</script> 

Ngoài ra, nếu bạn đang sử dụng .NET 4 hoặc tốt hơn bạn có thể làm cho ClientIDMode == static và đơn giản hóa các mã:

<script type="text/javascript"> 
function fncsave() 
{ 
    $("#savebtn").click(); 
} 
</script> 

tham khảo: MSDN Article for Control.ClientIDMode

+0

cảm ơn câu trả lời của bạn – jorame

+0

niềm vui của tôi. Câu hỏi. tại sao không chỉ sử dụng nút ASP.NET? –

+0

Tôi đang sử dụng một số CSS với jQuery và ASP.NET là cho tôi một thời gian khó khăn để phong cách nó hoặc làm cho công việc thiết kế của tôi. – jorame

Các vấn đề liên quan