2012-05-11 59 views
1

我正在使用jquery對話框,當用戶點擊確定,服務器端onclick事件應該被觸發,如果點擊取消,什麼都沒有發生。jquery按鈕觸發服務器端onclick事件

我必須在preventDefault()函數的開始處防止點擊函數。

$(document).ready(function() { 
     $("#<%=submit.ClientID %>").click(function (event) { 
      event.preventDefault(); 
       $("#confirm").dialog({ 
        buttons: { 
         "OK": function() { $(this).dialog("close"); 
           Here should be the code to trigger the server side click event 


        }, 
         "Cancel": function() { $(this).dialog("close");}, 
        } 
       }); 
     }); 
    }); 

我不知道如何觸發服務器端的onclick事件。有任何想法嗎?謝謝

+0

在服務器端從javascript執行任何操作的唯一方法是發送ajax請求,或通過當前頁面或iframe提交表單。你怎麼能在服務器端有一個點擊事件? GUI在服務器端不存在。 –

+0

@KevinB我是jquery的新手。據我所知,asp.net按鈕有onclick事件和onclientclick事件,onclick事件在服務器端,我想在用戶點擊「ok」時觸發該事件 – pita

+0

其中一個答案對你有幫助嗎?如果是這樣,請標記答案或提供反饋。 – lucuma

回答

0

event.preventDefault()置於取消部分或其某種條件,因此它不會在每次點擊上運行。

0

我認爲你在服務器和客戶端之間感到困惑。 如果你想在服務器端觸發事件,你需要通知他(可以通過ajax調用)。 click事件是一個客戶端事件,它不會在服務器端做任何事情。 嘗試通過ajax調用,將「OK」功能下的某些代碼通過服務器通知服務器。

無論如何,您應該將event.preventDefault()呼叫轉移到「取消」功能。

編輯:另一種方法來處理它是爲了防止提交發生,如果你不想要它。在你的表單標籤添加onsubmit="foo()" 和定義:

function foo(){ 
    //call your dialog and return true to continue the submit and false to cancel. 
} 
+0

如果我將event.preventDefault()移動到「取消」功能中,在用戶點擊彈出的對話框 – pita

+0

之前單擊「提交」按鈕後,服務器端代碼將運行,因此如果您不想創建一個提交你需要把它放在一開始(就像你做的那樣),並在「OK」函數中手動調用$(「#your_form_id」)。或者創建一個ajax調用。 –

+0

這是我的問題,我試圖使用$(「#your_form_id」)。submit()在服務器端沒有觸發submit_onClick()函數,我不知道如何使用ajax,你能給我舉一些例子? – pita

0

它看起來有點依賴於實現細節(即使他們如此廣泛的使用,他們將不會改變),但代碼是這樣的:

__doPostBack('submit','OnClick'); 

這將爲名爲submit的控件執行OnClick事件處理程序。作爲參考,看看這個關於how postbacks works in ASP.NET的小教程。

+0

@Pita我記得一些與ID爲「submit」的按鈕相關的問題(有些瀏覽器)。我不確定任何信息會受到歡迎。無論如何,這應該是工作(我也使用它),但你可能必須重新命名你的按鈕到別的東西。 –

相關問題