【问题标题】:Using javascript on an aspx page that uses a master page, which contains the page in a form?在使用母版页的 aspx 页面上使用 javascript,该母版页包含表单中的页面?
【发布时间】:2009-08-07 14:29:34
【问题描述】:

我有一个母版页,其中包含在表单中继承它的所有内容。从它继承的页面需要运行一些 javascript 来作用于页面上的文本字段。但是,我似乎无法通过 javascript 引用该文本字段,因为表单从母版页开始。

下面这行会是假的:

document.form1.txtFindUser.value = blah.responseText;

这是因为 form1 是在母版页上定义的,而 txtFindUser 在当前页上。

如何处理这些情况?

【问题讨论】:

    标签: asp.net javascript vb.net master-pages


    【解决方案1】:

    怎么样:

    document.getElementById('txtFindUser').value = blah.responseText;
    

    但是如果 txtFindUser 是你的服务器控件的 id,那么你应该像这样使用上面的代码:

    document.getElementById('<%= txtFindUser.ClientID %>').value = blah.responseText;
    

    【讨论】:

    • 我试过 getElementById 但把它放在 标签中跑过了我。谢谢!
    【解决方案2】:

    页面元素在运行时的名称并不总是与在 .NET 中的设计时名称相同。运行页面时查看页面的源代码,并查看 txtFindUser 在被 IIS 解释后调用的内容。

    【讨论】:

      【解决方案3】:

      页面上的任何服务器控件都将使用不同的名称呈现,因为该页面是从母版页派生的。 (我想这消除了由于在母版页和派生页中为控件使用相同名称而可能产生的复杂性)。

      var ctrl = '<%= txtBox1.ClientID %>';
      document.getElementById(ctrl).value='Hello world';
      

      请参阅this 帖子了解更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多