2016-12-15 57 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

真的很欣赏额外的评论。 –

相关问题