我有一个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 %>")
但是没有用(传递空值)。我怎么能做到这一点?
答案 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唯一性。