0

これは簡単なはずですが、何かが欠けています。

私は次のフォームを持っています:

<div id="rsvp">
<form class="form-inline">    
    <fieldset>
        <label class="control-label" for="input01" id="rsvp_label">John Smith</label>
        <label class="control-label">Attending?:</label>          
        <label class="radio"><input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>Yes</label>
        <label class="radio"><input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">No</label>            
        <label class="control-label small" for="select01" id="meal">&nbsp;&nbsp;Meal Selection:</label>
        <select id="selectMeal" class="input-small">
            <option>Chicken</option>
            <option>Beef</option>
        </select>
        <button type="submit" class="btn btn-primary" id="btnrsvp">Save / Confirm Changes</button>                      
    </fieldset>
</form>
</div>

クエリに一致するデータベース内のレコードを正常に引き出しており、1 -> n レコードがあります。レコードごとにこのフォームを複製したいと思います。したがって、レコードをループすることはできますが、実際にフィールドセットを複製してから id をインクリメントして、それぞれにフォームアクションをアタッチできるようにする方法を理解するのに苦労しています。それとも、これを行うためのより良い方法があるのでしょうか...?

4

3 に答える 3

0

コントロールはフォーム タグになりdata-id="3"ます。3 は john smith のユーザー ID を表します。<form>次に、すべての入力 ID を data-id にも変更し、フォーム送信ハンドラーで、タグのdata-id属性にマップされたレコードにそのデータを送信するだけです。

于 2012-06-03T18:27:12.367 に答える
0

フォームを複製する jQuery プラグインであるSheepIt をご覧ください。

于 2012-06-03T22:51:48.697 に答える
0

フォーム全体が要素の ID の代わりにクラスを使用する場合、ID を解析する必要なく自由に複製して再利用できます。各フォームのデータ属性または非表示の入力を使用して、レコード ID を追跡します。

フォーム内の他のフィールドに依存するフォーム フィールド要素のいずれかにイベント ハンドラーがある場合は、個々のフォームのコンテキスト内でそれらを検索するだけです。

イベント ハンドラーの例 (select ID を class に変更):

 <select class="input-small selectMeal">
    <option>Chicken</option>
     <option>Beef</option>
 </select>

JS

$('.selectMeal').change(){
   var rsvp_name= $(this).closest('.form-inline').find('.rsvp_label').text();
   if( rsvp_name=='John Smith')  doSomething();
})
于 2012-06-03T22:13:00.800 に答える