私は単にJavaScriptの変数にラベルを格納しようとしていますが、何らかの理由でこれがdocument.getElementById('control');
で機能していません。他のすべてが機能するため、javascriptが私のhtmlファイルに正常にリンクしていることを知っています。
これが私のJavaScriptコードです:
function performEvapCooledCircuit(txt)
{
var error = document.getElementById('lblError');
if (txt.value == null || isNaN(txt.value))
{
error.style.visibility = "visible";
}
}
これが私のラベルのhtmlコードです。
<asp:Label ID="lblError" class="NormLabel" runat="server"
style="color:red; visibility:hidden;" Text="Invalid Input."></asp:Label>
オブジェクトが予期されているというエラーが表示されますか?
ASP.NETが生成するIDは「lblError」ではないため、ClientID
で参照する必要があります
_document.getElementById('<%=lblError.ClientID %>');
_
あなたのJavaScriptファイルが外部の場合、私は通常、自分のIDが設定されていることを確認するために、「Init」JavaScriptメソッドのタイプを書かなければなりませんでした
ASPXページで:
_<script type="text/javascript">
var lblError = null;
function InitializeVariables()
{
if (lblError == null) // make sure you only do this once
{
lblError = document.getElementById("<%=lblError.ClientID %>");
}
}
</script>
<asp:Label
ID="lblError"
class="NormLabel"
runat="server"
style="color:red; visibility:hidden;"
Text="Invalid Input."></asp:Label>
_
次に、JavaScriptファイルでInitializeVariables()
を呼び出して、適切なasp.netコントロールを指す変数を取得していることを確認します。
_function performEvapCooledCircuit(txt)
{
InitializeVariables();
if (txt.value == null || isNaN(txt.value))
{
lblError.style.visibility = "visible";
}
}
_
「ハンター」はかなり堅実な方法を提供しますが、私の意見では、はるかに良い方法は、コントロールで「CliendIDMode」プロパティを使用し、そのプロパティを「静的」に設定することです。これにより、クライアントIDとサーバーIDが同じになります。このような:
<asp:TextBox ID="ServerAndClientId" runat="server" ClientIDMode="Static" />
ラベルのIDは「lblError」ではありません。 ASP.netエンジンがIDを変更しました。ブラウザでHTMLソースコードを確認して、実際のIDを確認します。
あなたはこれを使うことができます:
document.getElementById('<%= lblError.ClientID %>').click()
ASP.NET 4.0以降では、要素に ClientIDMode プロパティを使用できます。そして、それをStatic
に設定すると、ClientID
値はIDプロパティの値に設定されます。
<asp:Label ID="lblError" runat="server" ClientIDMode="Static" />
このようなものとしてレンダリングされます:
<span id="lblError" name="ctl00$MasterPageBody$ctl00$Label1" />
これはラベルのHTMLではありません。これは、応答で送信される前にHTMLにレンダリングされるASP.NETコントロールです。 ASP.NET WebFormsコントロールは、作成するHTMLのIDを変更することがあります。
Webページのソースを表示して、レンダリングされたページにあるHTML要素のIDを確認します。