javascript - 如何使用 JavaScript 查找和修改 asp.net 控件?

标签 javascript asp.net

这个问题困扰了我一段时间。我只是想更改在 asp.net 中定义的文本框的值,它通常在不在 LoggedInTemplate 中时有效。

我在网上到处搜索,甚至在这里搜索,但我唯一能找到接近做我需要的东西是在这里 Finding an asp:button and asp:textbox in Javascript .不幸的是,这不起作用。这是我到目前为止所拥有的:

<head id="Head1" runat="server">
  <script src="../../scripts/webeffects.js" type="text/javascript" language="javascript"></script>
</head>
<asp:LoginView ID="LoginView1" runat="server">
  <LoggedInTemplate>
  <div class="lotto_pick_container">
    <table runat="server" id="tblLottoPick">
      <tr><th colspan="3">Pick a Lotto Number</th></tr>
  <tr>
    <td><asp:TextBox ID="txt1stNum" runat="server"></asp:TextBox></td>
    <td><asp:TextBox ID="txt2ndNum" runat="server"></asp:TextBox></td>
    <td><asp:TextBox ID="txt3rdNum" runat="server"></asp:TextBox></td>
  </tr>
  <tr>
    <td><asp:Button ID="cmdSubmitPick" runat="server" Text="Submit Lotto Number" 
        onclientclick="return validateLottoPicks()" /></td>
  </tr>
</table>
  </div>
  </LoggedInTemplate>
</asp:LoginView>

现在我正在尝试使用外部 js 脚本来查找文本框并将其修改为任意值 12,以便我知道它可以工作:

function validateLottoPicks() {
  document.getElementById('<%= LoginView1.FindControl("txt2ndNum").ClientID %>').value = 12
}

当我用 Firebug 调试它时,似乎我的所有其他代码都有效,除了这个函数。我已经验证函数被调用,只是这一行不起作用。有人可以提供一些指导吗?我会送牛奶和 cookies 。

更新:

感谢大家的帮助。这是我第一次使用 Stack Overflow,它的快速响应给我留下了深刻的印象。

事实证明,我的实际问题是使用 <%= LoginView1.FindControl("txt2ndNum").ClientID %> 在外部 js 脚本中不起作用。我不知道这个。有一次,我将函数放在页面的标题中,一切正常。现在我将避免使用 ASP.NET 控件,因为我不想再次处理它,如果我决定使用 ASP.NET 以外的东西,它会更有意义。

最佳答案

问题是你在这一行设置了visible=false

<table runat="server" id="tblLottoPick" visible="false">

从那时起,控件未呈现,javascript 无法找到此控件。如果您不希望显示此表,请使用 css,例如 style="display:none;" 使其呈现但不可见。在我看来,其余的一切都有效。

更新

从评论来看,这段代码似乎也不在 aspx 页面内,因此 ClientID 无法工作,也找不到。将此添加到具有此 LoginView1 控件的页面的标题中的某处。

function validateLottoPicks() {
  document.getElementById('<%= LoginView1.FindControl("txt2ndNum").ClientID %>').value = 12
}

关于javascript - 如何使用 JavaScript 查找和修改 asp.net 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412632/

相关文章:

c# - 我应该如何检测文本文件中使用了哪个定界符?

asp.net - 启用 SSL 时将 login.aspx 放在哪里

asp.net - 使用列表查看模型

javascript - 如何在 UWP JavaScript 应用程序中显示状态栏?

javascript - 遍历javascript数组并获取下一个数组索引值

javascript - AngularJS:如何在 ng-repeat 中使用 $index

c# - 在 .NET Core 中解析和修改查询字符串

javascript 优化以避免函数上下文

javascript - 如何检查元素是否有效 JSX

GridView 中的 C# HTML 标签