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

时间:2012-06-21 18:19:35

标签: javascript asp.net visual-studio-2010 master-pages

我有一个asp.net 4.0框架应用程序,它由Masterpage和contentplaceholders组成。我有一个.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" />

的.js

function ValidateUser(valFormCount)
{
    var objTextBox;

    objTextBox = document.getElementById("txtFirstName"); 

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

1 个答案:

答案 0 :(得分:6)

这个asp.net符号

document.getElementById("<%= txtFirstName.ClientID %>")

在js文件中无效

您可以为TextBox设置ClientIDMode="Static"。如果你这样做,你将能够通过id

获取元素

<强> ASPX

<asp:TextBox ID="txtFirstName" runat="server" ClientIDMode="Static" />

<强> JS

var textbox = document.getElementById("txtFirstName");

关于ClientIDMode="Static"

  

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