2016-12-15 117 views
0

我想拉動用戶在文本框中輸入的信息,並將值傳遞給JavaScript函數,以便在「window.alert()」方法中顯示結果。如何將ASP.NET TextBox的用戶輸入傳遞給JavaScript函數?

我目前正在使用ASP.NET。這是我迄今爲止的ASP.NET前端部分和JavaScript的部分;

<asp:Button ID="btnCalculateSalary" runat="server" Text="Calculate Salary" OnClick="calcFunction()" /> 

    <script> 
     function calcFunction(c1, c2) { 
      c1 = document.getElementById('txtAnnualHours').value; 
      c2 = document.getElementById('txtPayRate').value; 

      return window.alert("Your Annual Salary is: " + c1 * c2); 
     } 
+0

你只是想爲你的控件尋找'OnClientClick',而不是'OnClick'? – David

+0

無論哪一個工作。我正在學習,所以我不知道哪一個適用於JavaScript。 –

+1

那麼,服務器端控件的'OnClick'就是處理服務器端事件。使用'OnClientClick'作爲客戶端點擊處理程序。但請注意,它仍然是服務器端控件,並且可能會導致整個頁面的後期刷新。 – David

回答

1

這不是做你認爲:

OnClick="calcFunction()" 

因爲這是一個服務器端的ASP.NET「控制」,而不是一個HTML元素,OnClick指的是ASP.NET的服務器 - 邊事件處理程序。但是你有一個客戶端函數來執行。在這種情況下,請嘗試:

OnClientClick="calcFunction()" 

但是,需要注意的一點是,這仍然是服務器端的ASP.NET控件。這意味着在處理客戶端單擊事件後,它可能會可能(取決於許多不相關的因素)仍然會調用回發到服務器的刷新頁面。初學者的一個常見混淆之處是,快速刷新頁面會「重置」它們的客戶端狀態,並導致他們懷疑「它無法正常工作」。

通常當你想要做的就是執行客戶端操作時,你可能想要完全跳過服務器端控件,只使用普通的HTML元素。

另一個不相關的附註......您的JavaScript函數在函數聲明中不需要那些c1, c2參數。值不被傳遞給函數,並且傳遞的值沒有在函數中使用。

+0

真的很欣賞額外的評論。 –

相關問題