1

Masterpage と contentplaceholders で構成される 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" />

.js

function ValidateUser(valFormCount)
{
    var objTextBox;

    objTextBox = document.getElementById("txtFirstName"); 

試してみdocument.getElementById("<%= txtFirstName.ClientID %>")ましたが、うまくいきませんでした (null 値が渡されました)。どうすればこれを達成できますか?

4

1 に答える 1

6

このasp.net表記

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

jsファイル内では無効です

ClientIDMode="Static"に設定できますTextBox。これを行うと、これを使用してIDで要素を取得できるようになります

ASPX

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

JS

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

ClientIDMode="Static"

このモードは、あなたが思っていることを正確に実行し、クライアント側のIDを静的にします。IDに入力するのは、クライアント側のIDに使用されるものであることを意味します。警告、これは、静的ClientIDModeが繰り返し制御で使用される場合、開発者がクライアント側IDの一意性を確保する責任があることを意味します。

于 2012-06-21T18:24:40.640 に答える