如何将ASP.NET TextBox的用户输入传递给JavaScript函数?
问题描述:
我想拉动用户在文本框中输入的信息,并将值传递给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);
}
答
这不是做你认为:
OnClick="calcFunction()"
因为这是一个服务器端的ASP.NET“控制”,而不是一个HTML元素,OnClick
指的是ASP.NET的服务器 - 边事件处理程序。但是你有一个客户端函数来执行。在这种情况下,请尝试:
OnClientClick="calcFunction()"
但是,需要注意的一点是,这仍然是服务器端的ASP.NET控件。这意味着在处理客户端单击事件后,它可能会可能(取决于许多不相关的因素)仍然会调用回发到服务器的刷新页面。初学者的一个常见混淆之处是,快速刷新页面会“重置”它们的客户端状态,并导致他们怀疑“它无法正常工作”。
通常当你想要做的就是执行客户端操作时,你可能想要完全跳过服务器端控件,只使用普通的HTML元素。
另一个不相关的附注......您的JavaScript函数在函数声明中不需要那些c1, c2
参数。值不被传递给函数,并且传递的值没有在函数中使用。
+0
真的很欣赏额外的评论。 –
你只是想为你的控件寻找'OnClientClick',而不是'OnClick'? – David
无论哪一个工作。我正在学习,所以我不知道哪一个适用于JavaScript。 –
那么,服务器端控件的'OnClick'就是处理服务器端事件。使用'OnClientClick'作为客户端点击处理程序。但请注意,它仍然是服务器端控件,并且可能会导致整个页面的后期刷新。 – David