[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 プロパティ[^] その動作をオーバーライドします。
それ以外の場合は、要素を識別する別の方法を見つける必要があります。 例えば:
document.querySelector("*[id$='_txtDDAExpiryDate']")
[ad_2]
コメント