2013-03-05 76 views
12

我有一個問題,我有一個像下面的一個按鈕:如何使用JavaScript調用asp:Button OnClick事件?

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

然後我有HTML按鈕像象下面這樣:

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

我有以下的javascript:

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

我現在的問題是,如何從HTML按鈕調用asp:Button OnClick?我讀過你可以通過從Id調用Id來做到這一點,但不工作。

任何幫助將真正感激它。

謝謝

+0

可能是一個傻瓜... @Mortalus是不是很酷調用__doPostBack方法?我在練習中從來沒有這樣做過。 – 2013-03-05 04:13:25

+0

我不確定當你引用JavaScript方法時,「cool」是什麼意思:)但是你可以使用它。如果你可以模擬一個實際的客戶端按鈕,就像其中一個簡單的答案那樣點擊,因爲有時候你可能想做一個部分回發,然後我發佈的問題中的回答將無法工作。 – Mortalus 2013-03-05 05:06:50

回答

22

設置style= "display:none;"。通過設置visible=false,它不會在瀏覽器中呈現按鈕。因此,客戶端腳本不會執行。

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

HTML標記應該是

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

更改JavaScript以

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

正確的onclick將會是'onclick =「fncsave(); return false;'' – 2014-03-23 22:24:57

+0

拯救生命。如果我使用'return false;'它會阻止PostBack? – SearchForKnowledge 2014-10-07 14:28:02

+0

是的,它可以防止 – Sunny 2014-10-07 16:08:36

6

如果你打開使用jQuery:

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

此外,如果你正在使用.NET 4或更好的,你可以使ClientIDMode == static和簡化代碼:

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

參考:MSDN Article for Control.ClientIDMode

+0

謝謝你的回答 – jorame 2013-03-05 04:15:50

+0

我的榮幸。題。爲什麼不使用ASP.NET按鈕? – 2013-03-05 04:26:27

+0

我正在使用一些CSS與jQuery和ASP.NET給我一個難以風格的設計或使我的設計工作。 – jorame 2013-03-05 04:31:36

相關問題