jQuery の「.val()」を使用してフォームの隠しフィールドの値を設定すると機能しない 質問する

jQuery の「.val()」を使用してフォームの隠しフィールドの値を設定すると機能しない 質問する

jQuery を使用してフォーム内の隠しフィールドの値を設定しようとしましたが、成功しませんでした。

問題を説明するサンプル コードを以下に示します。入力タイプを「テキスト」のままにしておくと、問題なく動作します。ただし、入力タイプを「非表示」に変更すると、動作しません。

<html>

    <head>
        <script type="text/javascript" src="jquery.js">
        </script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("button").click(function() {
                    $("input:text#texens").val("tinkumaster");
                });
            });
        </script>
    </head>

    <body>
        <p>
            Name:
            <input type="hidden" id="texens" name="user" value="texens" />
        </p>
        <button>
            Change value for the text field
        </button>
    </body>

</html>

また、入力タイプを「テキスト」に設定し、入力ボックスに「display:none」スタイルを使用するという次の回避策も試しました。しかし、これも失敗しました。jQuery では、非表示または不可視の入力フィールドを設定するのに問題があるようです。

何かアイデアはありますか? 実際に機能する回避策はありますか?

ベストアンサー1

:textは、型の値が の入力では失敗しますhidden。また、次のようにする方がはるかに効率的です。

$("#texens").val("tinkumaster");

ID 属性は Web ページ上で一意である必要があります。一意でないと、問題の原因になる可能性があるため、必ず一意であるようにしてください。また、より複雑なセレクターを指定すると、処理が遅くなり、見た目も悪くなります。

http://jsbin.com/elovo/edit、サンプルコードを使用してhttp://jsbin.com/elovo/2/編集

おすすめ記事