0

ID="_errors"を使用して JavaScript に指定された変数を読み込もうとしていますgetElementByIdが、実装に関する問題により、JS ファイルが無視されます。

これはHTMLです:

...
    <asp:TextBox ID="_password" CssClass="login" runat="server" TextMode="Password" />
    <label class="mylabel" for="<%=_errors.ClientID%>"></label>
    <table id="table1">      
        <tr>
            <td style="width: 100px;"></td>        
            <td><span class="response1" runat="server"><asp:Literal ID="_errors" runat="server" /></span></td>                           
        </tr>
        <tr>
            <td style="width: 280px;"></td>
            <td><asp:Button ID="_login" CssClass="mybutton" runat="server" Text="Login" /></td>
        </tr>
    </table>
...

これは_errors、.js ファイルで参照する方法です。

var PassWord            = document.getElementById('_login__password').value;
var Errors              = document.getElementById('_login__errors').value;

PassWordうまく機能するので、ここで値を参照します。ページのソースを表示することで、ClientID を使用して の ID を_errors確認しPassWordます。私が心配していること (そしてエラーの可能性のある原因) は、その部分<asp:Literal ID="_errors" runat="server" />がページ ソースにまったく表示されないことです。ここで何が問題なのか手がかりはありますか?

4

2 に答える 2

1

ページにリテラル コントロールを配置すると、コンテンツを html 要素に囲まずにレンダリングするだけです。

例えば:

<Asp:literal runat="Server" Text="Hello" />

次のようにレンダリングされます:

 Hello

したがって、そのIDを持つ要素がないため、への呼び出しはdocument.getElementById失敗します...

リテラル コントロールを ID を持つスパンとしてレンダリングする場合は、Text プロパティを次のように設定します。

<asp:literal runat="server" Text="<span id='_errors'>Hello</span>" />
于 2013-01-07T18:22:01.507 に答える
1

すでに述べたように、ID でリテラルにアクセスすることはできません。

周囲に ID を設定するだけで、<span>その要素を「サーバーで実行」することができます。

...
    <asp:TextBox ID="_password" CssClass="login" runat="server" TextMode="Password" />
    <label class="mylabel" for="<%=_errors.ClientID%>"></label>
    <table id="table1">      
        <tr>
            <td style="width: 100px">&nbsp;</td>        
            <td><span ID="_errors" class="response1" runat="server" /></td>                           
        </tr>
        <tr>
            <td style="width: 100px">&nbsp;</td>
            <td><asp:Button ID="_login" CssClass="mybutton" runat="server" Text="Login" /></td>
        </tr>
    </table>
...

ノート:

  • 表示の問題を防ぐために、&nbsp;空の要素にも追加しましたtd
  • 同じ列内のセルに異なるサイズを設定することはできません
于 2013-01-07T20:18:35.160 に答える