是這樣的,我這里頁面寫出來這是為了演示,實際的情況是Button1和Button2在不同的用戶控件中,通過頁面動態加載進來,所以你不要發表出在Button1_Click寫Button2_Click(null,null);這樣的回答代碼:<asp:Button ID="Button1" runat="server" Text="Button1" onclick="Button1_Click" /><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="Button2" onclick="Button2_Click" /><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>$(function() { $("#Button1").bind("click", function() { document.getElementById("Button2").click(); }); });protected void Button1_Click(object sender, EventArgs e) { TextBox1.Text = new Random().Next(10000).ToString(); } protected void Button2_Click(object sender, EventArgs e) { TextBox2.Text = new Random().Next(10000).ToString(); }就是單擊Button1的時候,執行Button2的后臺事件后,再執行Button1的后臺事件我現在是這樣寫的, 不同的瀏覽器運行效果還不一樣呢Firefox和Chrome執行了 Button2_ClickIE執行了Button1_Click是什么原因呢,有沒有辦法在js中調用Button2的后臺事件,執行Button2的后臺事件,也執行Button1的后臺事件
2 回答

倚天杖
TA貢獻1828條經驗 獲得超3個贊
你可以監控下生成的HTML代碼,看下具體的執行。
BUTTON1和BUTTON2都是RUNAT=SERVER的,所以,在執行它們的CLICK事件的時候,都會提交到服務器(POSTBACK)。
區別應該是兩種瀏覽器的處理方式。
在FF中,執行BUTTON1的CLICK時,會先執行綁定的函數體,再執行.NET生成的代碼,這樣,BUTTON2“被”CLICK后POSTBACK,此時,原來的BUTTON1的CLICK事件就被忽略了(頁面刷新了)
而到了IE中,這個執行相反,就得到了不同的結果。
以上是我的個人理解,分析下后臺代碼的執行順序就能確認

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
如果你兩個按鈕都是服務端控件的話,每個按鈕的事件都會引起服務端的相應,引起頁面的回傳,這樣的話,你用JS腳本出發單擊事件的邏輯從根本上好像就行不通的吧,考慮下其他辦法呢?
- 2 回答
- 0 關注
- 691 瀏覽
添加回答
舉報
0/150
提交
取消