LoginSignup
1
1

More than 1 year has passed since last update.

JavaScriptでLabelの値を取得する方法(初心者のつまずき)TextBoxの値が消える謎

Last updated at Posted at 2022-02-02

TextBoxをLabelに変えたところ、JavaScriptで値が取得できなくなった

getElementById("txtDispYM").valueという記述のままでは、
値が取得できずundifinedとなってしまった。
(TextBoxでは問題なかった)

解決策

JavaScriptでの取得をInnerTextにした。
InnnerHTMLでもうまくいった。

やはり.Value .Textだと取得できませんでした。

//以下の記述でidがtestのlabelの値を取得できた。
if (!confirm(document.getElementById("test").innerText + " の処理を実行します。よろしいですか?"))

調べると、ClientIDMode="Static"を指定するというのもありましたが、
私の場合は無しで大丈夫でした。
asp.netのバージョンによるのでしょうか、

結論と参考サイト

getElementById("test").innerText にすればよいだけ。

どうしてもLabelにしたかった理由

以下はIEからEdgeへ移行する作業を行なってる時に起きたのですが、
いまいち何で、何がいけないのかよくわかりません。
プログラム全体を見つくせてないので、どこかの記述が影響してるのか、
それともそういうものなのかが分かりませんでした。
調べても出てこなかったので、触ってるプログラムの問題かもしれないです。

Edge移行で、TextBoxの値がクリックで消える現象が起きた

IE11→Edge移行した際に、テーブルの中にテキストボックスを設置したところ、
なんだか消えてしまう現象が起きました。
テキストボックスはReadOnlyで、データベースから取得した値を表示するのみです。
(なので別にラベルでも良い)

イメージ

TextBoxの中身をマウスで選択して、少し離れたところ(おそらくtdの青いところ)を
押すと、TextBoxの表示が消える

スクリーンショット 2022-02-02 20.27.15.png

<div style="position:absolute; top:100px; left:350px; width:300px;">
        <table style="border-style:none;" border="1" cellpadding="0" cellspacing="0">
            <tr style="height:50px;">
                <td>ほげほげ</td>
                <td>
                 <asp:TextBox ID="test" runat="server" CssClass="txt2" Width="150px" ReadOnly="true" TabIndex="-1"/>--%>
                </td>
            </tr>
        </table>
</div>

TextBoxからLabelに変更

TextBoxではなく、Labelにしたらその現象は起きなくなりました。

<asp:Label ID="test" runat="server" CssClass="txt2" Width="150px" TabIndex="-1"></asp:Label>

Tableでなくdivで囲ってみたり、z-index付けたりと色々試行錯誤しましたが、
やはり消えてしまいした。
TextBoxの高さを大きくしてみたりもしましたが、何だか見た目が崩れてきたので
諦めてLabelにしたところ、消える現象はなくなりました。

うーん。何が悪さをしてるのか気にはなるのですが・:frowning2:・・。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1