【解決方法】JSファイルのJavaScriptを介してASP.NETコントロールのクライアントID値を取得するにはどうすればよいですか?

[ad_1]

コンテンツ ページの JS ファイルの JavaScript を介して asp.net コントロールのクライアント ID 値を取得し、その JS ファイルが同じページから参照されるようにする方法。
.net Framework 3.5で作業しています。 以下のようにクライアントID値を取得しています
document.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).value;。 例外を下回っています
Uncaught TypeError: null のプロパティを読み取れません (「値」を読み取っています)

私が試したこと:

以下のようなコード

document.getElementById('<%=txtDDAExpiryDate.ClientID%>').value;

解決策 1

常にドキュメントを読むことから始めてください。 ドキュメント: getElementById() メソッド – Web API | MDN[^] – を返すことは明らかです。 null その ID を持つ要素が存在しない場合:

引用:

指定された ID に一致する DOM 要素オブジェクトを記述する Element オブジェクト。ドキュメント内に一致する要素が見つからなかった場合は null。

それでは、正確に何を知る必要がありますか? txtDDAExpiryDate.ClientID がサーバーから返されている場合は、それを HTML と手動で照合してみてください。
これにより、サーバー側またはクライアント側のどこに問題があるかがわかります。
そしてそれが分かれば必ず解決できるはずです。

デバッガーを使用して (または単にページに書き込んで) 調べてください。

申し訳ありませんが、私たちはそれを行うことはできません。新しい (そして非常に便利な) スキルであるデバッグを学ぶ時期です。

解決策 2

HTML ドキュメント内の ID は一意であると想定されているため、WebForms は、サーバー側コントロールの ID をその階層内のすべての「名前付けコンテナー」の ID と組み合わせて「破壊」します。

.NET 4.x に移行できる場合は、 ClientIDMode プロパティ[^] その動作をオーバーライドします。

それ以外の場合は、要素を識別する別の方法を見つける必要があります。 例えば:

JavaScript
document.querySelector("*[id$='_txtDDAExpiryDate']")

ドキュメント: querySelector() メソッド – Web API | MDN[^]

[ad_2]

コメント

タイトルとURLをコピーしました