2014-07-06 66 views
0

我更新了我的.Net Web應用程序以使用Framework 4.5,更新後,所有輸入按鈕(不是asp:按鈕)都停止觸發onclick javascript代碼,這隻發生在用戶控件(.ascx)內的那些按鈕上。onclick事件不是由用戶控件中的輸入按鈕觸發的

只是爲了記錄,用戶控件既沒有被加載,也沒有在更新面板內。

我的按鈕看起來像這樣

<input id="cb" onClick="myfunc()" type="button" value="Close" /> 

我的用戶控制被包括以頁面如下

<cc:actionbar id="theActionBar" runat="server"></cc:actionbar> 

和JavaScript功能,這也包括在用戶控件中,是

function myfunc() { 

    if (confirm("Before closing, please make sure you saved any changes.\nAre you sure you want to close?") == true) { 
     __doPostBack('theActionBar:theClose', ''); 
    } 


} 

這對於Framework 3.5和以前的版本來說很好。

任何想法爲什麼會發生這種情況???或者我該如何解決這個問題?我已經嘗試了幾個我在互聯網上發現的建議,似乎沒有任何工作。

在此先感謝。 。

+0

每當我有這樣的問題,我看着JavaScript執行。如果JavaScript在頁面加載過程中悄無聲息地出錯,它會殺死每個在加載後運行的腳本。使用類似螢火蟲的東西,看看您的網頁上是否有任何javascript錯誤。 – Louis

回答

0

我看不到一個明顯的原因,但你有沒有考慮簡化你的方法來避免自定義JavaScript和硬編碼的回發事件引用?您可以用ASP.NET按鈕的OnClientClick財產得到完全相同的行爲:

<asp:Button runat="server" ID="btnClose" Text="Close" OnClick="btnClose_Click" OnClientClick="return confirm('Before closing, please make sure you saved any changes.\nAre you sure you want to close?')" /> 

從OnClientClick這個代碼或函數返回false防止回發。

切換到這種方法可能更好,甚至可以解決您的問題,如果它與回發事件引用有關。

+0

我試過了,它不起作用。頁面回發但不執行JavaScript代碼。 – Quetzalcoatl

相關問題