4

次の HTML を考慮します。

<form id="upvoteForm" method="post" action="/post/upvote">
    <input type="text" name="post_id" id="post_id"/>
</form>
<form id="downvoteForm" method="post" action="/post/downvote">
    <input type="text" name="post_id" id="post_id"/>
</form>

<input type="hidden" id="_postid" value="1"/>

この JavaScript と jQuery を使用して、名前が toの 2 つinputのフィールドを値に設定しようとしています。post_id_postid

$(document).ready(function() {
    $('#post_id').val($('#_postid').val());
});

ただし、この jsFiddleでわかるように、最初の値のみを設定しています。両方の値を設定するにはどうすればよいですか? セレクターは両方をつかむことになると思いました。

さて、なぜこのページに 2 つのフォームがあるのか​​不思議に思われるかもしれません。基本的な理由は、私がbutton望むようにスタイルを設定した入力がありますが、ここで を使用して適切なフォームのonclickを呼び出すためです。submit最終的にはここで AJAX を利用する予定ですが、それは後で説明します。

4

2 に答える 2

8

id は常に一意です。同じ ID を持つ 2 つの要素を選択することはできません。名前で選ぶ

$(document).ready(function() {
    $('input[name=post_id]').val($('#_postid').val());
});
于 2013-09-03T01:34:28.840 に答える
1

同じ ID を持つ 2 つの HTML 要素を持つことは違法であり、発生しているような未定義の動作が発生します。ただし、同じ名前を使用することは有効です。したがって、 のようなセレクターを使用できます。これは、属性が に設定された の内部を$('form > input[name=post_id]')検索します。inputformnamepost_id

于 2013-09-03T01:34:03.053 に答える