0

asp ラベルのテキストを読み取り、それに基づいて div を表示するかどうかを設定する JS があります。

 function setToLabel() {
        text = document.getElementById('add_view');
        lbl = document.getElementById('lblAddVisible');
        var isHidden = text.innerText == 'true';
        text.style.display = isHidden ? 'block' : 'none';
    }

    $(document).ready
(
     function()
     {
         setToLabel();
     }

);

問題は、明示的に isHidden 変数を設定した場合にのみ機能することです。ラベルを読み取ってブール値を取得するように指示しても、機能しません。

ありがとう

4

3 に答える 3

2

これは、コントロールがレンダリングされるときに、指定した ID とは異なる ID が ASP によってコントロールに与えられるためです。スクリプトが ASP コードと同じページに表示される場合は、これを追加できます

lbl = document.getElementById('<%= lblAddVisible.ClientID %>');

CssClassそれ以外の場合は、コントロールに a を追加し、lblAddVisibleクラス名で要素を取得する必要があります。また、innerHTML を読み取る必要がある正しい要素を使用していることを確認してください。

于 2013-02-05T20:00:32.797 に答える
1

aspx ページにネストされたコントロールがある場合は、正しい ID を使用していない可能性があります。これを試して:

text = document.getElementById('<%=add_view.ClientID%>');
于 2013-02-05T20:02:23.997 に答える
0
function setToLabel() {
    text = document.getElementById('add_view');
    lbl = document.getElementById('lblAddVisible');
    var isHidden = lbl .innerText;
    text.style.display = isHidden ? 'block' : 'none';
 }

 $(document).ready
 (
 function()
 {
     setToLabel();
 }

 );

代わりに、ラベルから読み取るtxt.innerText必要があるため、使用する必要がありますlbl.innerText

于 2013-02-05T20:00:15.680 に答える