2014-03-31 76 views
0

我有一個C#ASP.NET應用程序與一些JavaScript組件。特別是,有一個JavaScript彈出窗口,用戶可以輸入一些細節,然後按確定(JavaScript按鈕)提交數據。然後這會調用一個JavaScript函數Ok()來處理數據並關閉彈出窗口。試圖從JavaScript觸發ASP.NET中的button.click()事件。事件不會觸發

我希望Ok()函數也可以在服務器端的ASP按鈕上調用click(),但即使在運行時捕獲了正確的元素,該事件也不會觸發。

有問題的代碼片段:

function Ok() { 

var btn = document.getElementById("aspBtn"); 
btn.click(); 

[ some extra processing ] 

} 

什麼令我感到困惑的最多的是,在這個確切的按鈕,這個確切的點擊()事件被稱爲代碼的另一部分成功。請指教。

編輯:我無法以令人滿意的方式解決此問題,而是將使用服務器按鈕。從用戶界面的角度來看並不理想,但它必須這樣做。

+1

你能解釋爲什麼你不能直接使用服務器端的按鈕,按鈕的ASP ID發生變化..? –

+0

使用document.getElementById('<%#aspbutn.ClientId%>') – Marwan

+0

您是否在瀏覽器的控制檯窗口中看到了一些異常? – Tigran

回答

0

使用觸發事件。

function Ok() { 

    document.getElementById('<%# aspbutn.ClientId%>').trigger("click"); 

    [ some extra processing ] 

    } 

有關更多信息,請參閱下面的鏈接。

​​

2

當它運行在瀏覽器上 試試這個

document.getElementById('<%=aspBtn.ClientID %>').click(); 
+0

有了這個,我得到: Uncatcht類型錯誤:無法調用空 – user3480416

+0

嘗試的「點擊」,並稱這 Akhil

0
function Ok() { 

document.FormName.btn.click(); 

[ some extra processing ] 

}