2012-08-03 43 views
0

所以我有這個更新面板,它運作良好。如何在不重新加載頁面的情況下獲取asp窗體中的按鈕?

<div> 
     <button id="foo" onclick="changeVal(this.id);">Send the ID "foo"...</button> 
    </div> 

<form runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server" > 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always"> 
<ContentTemplate> 

<div id="thethetext"> 
<asp:Literal ID="thetext" runat="server"></asp:Literal> 
</div> 

</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="myButton" EventName="Click"/> 
</Triggers> 
</asp:UpdatePanel> 



    **<!-- MOVE BUTTON (ID="foo") OVER HERE TO DISPLAY IT UNDER THE LITERAL -->** 

<asp:HiddenField ID="blah" runat="server" value="Initial Value"></asp:HiddenField> 
<asp:Button ID="myButton" Text="Get Concatenated..." OnClick="Test" runat="server"></asp:Button>  
</form> 

但是,我想要移動asp窗體中的按鈕(id爲「foo」)。所以它顯示在Literal用戶控件下面......但是如果我這樣做了,每次點擊它,它都會重新加載頁面。無論如何要避免這種情況?謝謝! 。

回答

1

它重新加載頁面,因爲您的按鈕提交您剛剛把它的形式 給你的按鈕與價值button屬性type,所以它不會提交:

<div> 
<button type="button" id="foo" onclick="changeVal(this.id);">Send the ID "foo"...</button> 
</div> 

參考:W3C HTML 4.01 Specification

+0

謝謝,像一個魅力工作。我還發現,在onclick函數中添加「返回false」也可以工作。 – eastboundr 2012-08-03 15:11:53

+0

@eastboundr,也許這可能會起作用,但是沒有javascript的瀏覽器仍然可以通過按下按鈕意外提交表單。 'type =「button」'也可以防止這種情況。 :) – Bazzz 2012-08-03 18:29:25

+0

很有意義,謝謝! – eastboundr 2012-08-03 18:30:02

相關問題