2011-11-18 28 views
0

我有以下BlockUI javascript設置爲在Master頁面的ContentPlaceholder中的aspx頁面上運行。當頁面加載,當我點擊按鈕,ASP,JavaScript的火災,並顯示警告框1和4,但沒有2和3BlockUI java腳本不能在aspx頁面的ContentPlacehoder內部執行母版頁

<script type="text/javascript"> 
$(document).ready(function() { 
    alert('alert1'); 

    $('#Button3').click(function() { 
    alert('alert2 button clicked'); 
     $.blockUI({ message: '<h1>Just a moment...</h1>' }); 

     alert('alert 3 It clicked!'); 
    }); 
    alert('alert4!'); 
}); 

</script> 

我認爲這是與查找按鈕在ContentPlaceholder內部。

任何想法的人?

這裏是按鈕,沒有事件背後的代碼設置。

<td class="style17"> 
    <asp:Button ID="Button3" runat="server" Text="Button" /> 
</td> 

回答

1

更改選擇從$('#Button3')$('#<%= Button3.ClientID %>')

順便說一句,如果你想避免這個按鈕回傳單擊您必須添加OnClientClick="return false;"這個按鈕

+0

那麼這是一個測試,我正在努力工作。我希望將該塊附加到當前打開一個aspx彈出頁面的Gridview上的Edit click事件,然後從Popup提交時解除阻止。 – htm11h

0

爲了詳細說明尤里的回答是:ID在呈現爲html之前,ASP.NET控件中的字段會被更改。它實際上會以「ctl00_contentGuts_FORMNAME___CONTAINER_FIELD」或類似的形式出現。這有助於ASP.NET識別它,特別是在列表控件中使用時。

尤里的選擇器更改爲$('#<%= Button3.ClientID %>')的答案應該可以正常工作。 ASP.NET的渲染引擎將會看到<%=>部分,並使用Button的客戶端ID進行渲染。

現在,您使用的是什麼版本的.NET?我問,因爲在.NET 4中有一個更清晰的方法。在.NET 4中,你可以在控制設置一個clientId屬性,像這樣:

<asp:Button ID="Button3" ClientID="Button3" runat="server" Text="Button" /> 

這將確保你知道這個按鈕的ID,是一個小清潔和更容易比其他方法來讀取。

+0

感謝您的反饋,仍然在3.5 ..............我將如何去獲取GridView上的Edit click事件來執行java腳本。 – htm11h

相關問題