使用javascript获取母版页ContentPlaceHolders中文本框的值

DNR*_*DNR 1 javascript asp.net master-pages visual-studio-2010

我有一个asp.net 4.0框架应用程序,由一个主页和内容占位符组成.我有一个.js文件,对用户输入的数据进行验证.如何调用ContentPlaceHodler"cphBody"中的文本框"txtFirstName"(来自.js文件)?

更新(代码)
:. aspx

<asp:TextBox id="txtFirstName" runat="server" CssClass="webForm" Width="250px" MaxLength="100"></asp:TextBox>

<asp:Button id="btnContinue" runat="server" ClientIDMode="Static" onclientclick="document.getElementById('cphHeaderContent_AlertTimeMsgBox').value = GetSeconds(); return ValidateUser(1);" CssClass="webButton" Text="Continue" OnClick="btnContinue_Click" />
Run Code Online (Sandbox Code Playgroud)

.js文件

function ValidateUser(valFormCount)
{
    var objTextBox;

    objTextBox = document.getElementById("txtFirstName"); 
Run Code Online (Sandbox Code Playgroud)

我试过document.getElementById("<%= txtFirstName.ClientID %>")但是没有用(传递空值).我怎么能做到这一点?

Cla*_*edi 6

这个asp.net表示法

document.getElementById("<%= txtFirstName.ClientID %>")
Run Code Online (Sandbox Code Playgroud)

在js文件中无效

你可以设置ClientIDMode="Static"TextBox.如果你这样做,你将能够通过id得到元素

ASPX

<asp:TextBox ID="txtFirstName" runat="server" ClientIDMode="Static" />
Run Code Online (Sandbox Code Playgroud)

JS

var textbox = document.getElementById("txtFirstName");
Run Code Online (Sandbox Code Playgroud)

关于 ClientIDMode="Static"

这种模式完全符合您的想法,它使客户端ID成为静态.这意味着您为ID添加的内容将用于客户端ID.警告,这意味着如果在重复控件中使用静态ClientIDMode,则开发人员负责确保客户端ID唯一性.