【问题标题】:Cannot set property 'value' of null in javascript无法在 javascript 中设置 null 的属性“值”
【发布时间】:2016-09-15 17:06:53
【问题描述】:

我在名为“item_pricecataglog.js”的javascript中收到以下错误“Cannot set property 'value' of null”,遵循代码行

document.getElementById('ctl00_ContentPlaceHolder1_ctl00_hdn_returnboolvalue').value = 'true';

我认为这是因为我的应用程序没有在网页或控件中找到相应的元素。

奇怪的是,元素“hdn_returnboolvalue”是在引用此 java 脚本的 Web 控件中声明的。下面是我的 web 控件的 sn-p

<%@ control language="C#" autoeventwireup="true" CodeBehind="EstimateProductcatalogueBind.ascx.cs" Inherits="ePrint.usercontrol.ProductCatalogue.EstimateProductcatalogueBind" %>

<script type="text/javascript" src="<%=strSitepath %>js/item/item_pricecatalog.js"
language="javascript"></script>
<div>
 <asp:HiddenField ID="hdn_kitavailibility" runat="server" Value="0" />
 <asp:HiddenField ID="hdn_returnboolvalue" runat="server" Value="" />
</div>

上面的控件在弹出窗口里面,就是名为“common_popup”的aspx页面。我已将控件添加到在弹出 aspx 页面中声明的“ContentPlaceHolder1”。

<%@ page language="C#" masterpagefile="~/Templates/popUpMasterPage.master" autoeventwireup="true" CodeBehind="common_popup.aspx.cs" Inherits="ePrint.common.common_popup" title="Untitled Page" enableviewstatemac="false" enableEventValidation="false" theme="Theme1" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <script type="text/javascript" language="javascript" src="<%=strSitepath %>js/Item/general.js?VN='<%=VersionNumber%>'"></script>
   <div>
    <UC:callClass ID="usrCallclass" runat="server" />
   </div>
   <div>
    <asp:PlaceHolder ID="plhDiv" runat="server"></asp:PlaceHolder>
   </div>
  </asp:Content>

下面是我将控件添加到此页面的 C# 代码的 sn-p

            UserControl userControl37 = (UserControl)base.LoadControl("~/usercontrol/ProductCatalogue/EstimateProductcatalogueBind.ascx");
            this.plhDiv.Controls.Add(userControl37);

【问题讨论】:

  • 如果该 JavaScript 文件按原样运行,它希望找到 &lt;input id="ctl00_ContentPlaceHolder1_ctl00_hdn_returnboolvalue" ...&gt; 在您的客户端 HTML 中是否存在这样的元素?
  • 您所说的原样是什么意思?不完全相同的元素,但在 html 源
  • 和上面的html代码行在下面的内容占位符
  • 也就是说,ID 不是您在 JavaScript 代码中使用的 ID?如果您将确切的 ID 传递给 getElementById,它将起作用
  • 根据你自己的评论,ID是ContentPlaceHolder1_PriceCatalog_hdn_returnboolvalue

标签: javascript asp.net asp.net-webpages


【解决方案1】:

我认为正确的代码应该是(注意更改的 id):

document.getElementById('ContentPlaceHolder1_PriceCatalog_hdn_returnboolvalue').value = 'true';

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签