0

1ページに複数のフォームがあります。各フォームを非表示にして表示するためのボタンを作成しました(これは機能します)。ボタンの後に#family_nameの値を追加して、ボタンの目的を識別しようとしています。ただし、最初の#family名の値は、各フォームの各ボタンの後に表示されます。その特定のフォームに関連付けられている値を表示したいと思います。

(私はボタンがばかげた場所に置かれていることを知っています...この段階では問題ありません)

var family = $("input#family_name").val();
$("input#salutation").after("<button title=\"View, Amend or Add\" id=\"chnx\">+</button><span>" + family + "</span>");

<div id="1">
<form id="1">
<fieldset>
<p>
<label for="salutation">Salutation</label>
<input name="salutation" id="salutation" class="required" value="Mr" type="text">
</p>
<p>
<label for="family_name">Family Name</label>
<input name="family_name" id="family_name" class="required" value="Parker" type="text">
</p>
<p>
<label for="first_name">First Name</label>
<input name="first_name" id="first_name" class="required" value="" type="text">
</p>
<p>
<label for="middle_name">Middle Name</label>
<input name="middle_name" id="middle_name" class="required" value="" type="text">
</p>
<p>
<label for="DOB">Date of Birth</label>
<input name="DOB" id="DOB" class="required" value="" type="text">
</p>
<input value="Add" id="add" type="submit">
<input value="Amend" id="amend" type="submit">
</fieldset>
</form>
.......
<form id="2">
.......
.....mutliple forms......
.......
</div>
4

2 に答える 2

0

IDは一意である必要があります。同じIDのインスタンスが複数ある場合は、代わりにクラスを使用する必要があります。

于 2012-10-07T12:42:06.830 に答える
0

ID はページ内で一意である必要があるため、ID を持つ最初の要素を探すことはできません。

あなたがする必要があるのは、それらをクラス名に変更し(各フォーム内の重複する他のすべての要素と同様に)、各フォームをループして、そのフォーム内でのみデータを検索し、追加することです。

次のようなもの

$('form').each(function(){
    var family = $(this).find("input.family_name").val();
     $(this).find("input.salutation").after("<button title=\"View, Amend or Add\" id=\"chnx\">+</button><span>" + family + "</span>");

});

この操作に関係のないログインのような他のタイプのフォームがある場合に備えて、フォームに共通のクラス名も追加することをお勧めします。

于 2012-10-07T12:45:46.343 に答える