c# - 无法在javascript中通过id获取值文本框

标签 c# javascript asp.net

我有文本框,它有值可以说。我在文本框“onblur”之一上调用我的 javascript 方法。我的功能是:

function CalculateExpectedProductPrice() {
  alert("hi i called");
  var originalPrice = document.getElementById('hdnSelectedProductPrice').value;

  var numberOfLicenses = document.getElementById('txtNumberOfLicense').value;
  var enteredAmount = document.getElementById('txtAmount').value;

  alert(originalPrice);
  alert(numberOfLicenses);
  alert(enteredAmount);

}

我收到的提示消息为““嗨,我打过电话”。但没有更进一步。

但有些我没有得到这些控件的值。

*已编辑:* 我的 HTML 是:

<asp:HiddenField ID="hdnSelectedProductPrice" runat="server" />
<asp:TextBox ID="txtAmount" runat="server" Width="250px"></asp:TextBox>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
      <asp:TextBox ID="txtNumberOfLicense" runat="server" Width="35px" ></asp:TextBox>
   </ContentTemplate>
   <Triggers>
      <asp:AsyncPostBackTrigger ControlID="txtNumberOfLicense" EventName="" />
   </Triggers>
</asp:UpdatePanel>

主内容页会不会有影响。因为脚本在内容页面中,而 html 也在同一内容页面中。另外让我知道,我正在使用向导控件,因为所有这些控件都位于向导的第二步。这会产生任何影响吗?

已编辑:

我认为向导控制在这里很重要。当我启动我的 Firebug 并查看生成的 html 时,它将 Id 动态分配给向导内的那些控件。这就是为什么 javascript 无法找到预期的控件。 例如,对于向导控件内的 txtAmount 文本框,名称为:

ctl00_ContentPlaceHolder1_Wizard1_txtAmount

但我当然不喜欢使用这个生成的 ID。那么是否有任何补救措施可以在向导控件内部找到控件并获取设置值?

最佳答案

如下所示获取控件的id

var enteredAmount = document.getElementById('<%=txtAmount.ClientId%>').value;

关于c# - 无法在javascript中通过id获取值文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246650/

相关文章:

c# - 生产 ASP.net 应用程序比开发慢

c# - .NET Web 服务 - 如何调用非托管 C dll

c# - OData $orderby 查询中的自然排序

c# - 美元符号不会在 c# 中插入括号

javascript - 在 React 初始化时 props 是未定义的。为什么?

c# - asp.net 中的浏览器后退按钮问题

asp.net - 可编辑的 GridView 存储 View 状态中的更改直到保存

c# - 使用 C# 创建、存储和检索动态数据

javascript - Android WebView 中的程序化点击

javascript - 如何使用 html2canvas 上传屏幕截图?