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/編集