0
// text Box
        &nbsp;&nbsp;<asp:TextBox ID="TextBox3"  runat="server" BackColor="Silver" 
            BorderColor="Silver" ontextchanged="TextBox3_TextChanged" 
            style="margin-left: 6px" Width="154px"></asp:TextBox>

// Submit button
        &nbsp;<asp:Button ID="Button6" runat="server" BackColor="Silver" 
            onClientclick='store_memID()' style="margin-left: 20px" Text="Submit" 
            Width="102px" Font-Bold="True" Height="28px" />


    <script type = "text/javascript">
        // Function to caputure client-input- Member_ID.
        function store_memID() {

            var mem_ID = document.getElementById('TextBox3').value;


            return confirm('TimeLine is displayed for: ' + mem_ID);
        }

    </script>

コードを実行してテキスト ボックスに値を入力し、送信ボタンを押すと、「Microsoft JScript ランタイム エラー: プロパティ 'value' の値を取得できません: オブジェクトが null または未定義です」というメッセージが表示されます。



そうでなければ、「.value」を削除すると:-

<script type = "text/javascript">
    // Function to caputure client-input- Member_ID.
    function store_memID() {

        var mem_ID = document.getElementById('TextBox3');


        return confirm('TimeLine is displayed for: ' + mem_ID);
    }

</script>

プログラムを実行し、テキストボックスに値を入力して送信を押すと、次のようになります:-

「TimeLine の表示対象: Null」

私はこの問題を解決するために調べてきました。何がうまくいかないのかわからない...

編集 (修正): - テキスト ボックスのサーバー側 ID は 'TextBox3' ですが、これは必ずしもクライアント側 ID と一致するとは限りません。クライアント側 ID を取得するには:- '<%=TextBox3.ClientID%>'

4

2 に答える 2

2

ASP フォームを作成してからしばらく経ちましたが、クライアント側 (ブラウザ内) の ID は、あなたが思っているものとは異なる可能性があります。これは、私の考えでは、Web フォームの主な落とし穴の 1 つでした (これは、バージョン 4.0 でよりシンプルになっている可能性があります。確認する必要があります)。css クラスを使用する (そして jQuery などを使用して要素を見つける) か、クライアント側の ID を Java スクリプトに挿入することができます。

<script type = "text/javascript">
    // Function to caputure client-input- Member_ID.
    function store_memID() {
        var mem_ID = document.getElementById('<%=TextBox3.ClientID%>').value;
        return confirm('TimeLine is displayed for: ' + mem_ID);
    }
</script>

更新: コメントで指摘されている ClientID の大文字と小文字のエラーを修正

于 2013-01-28T23:19:38.300 に答える
1

サーバー側のコードに主に使用される asp テキスト ボックスを使用しています。タグに配置する ID は、レンダリングされる要素の ID と一致するとは限りません。

レンダリングされた ID を見つけるには、ブラウザで html を検査する必要があります。(おそらく次のようになります: ct100_TextBox3) 代わりにそれを使用します。または、サーバー側のコーディングを行っていない場合は、テキスト ボックスを<input />フィールドに変換するか、<textarea />.

于 2013-01-28T23:23:10.397 に答える