0

私のアプリは、タグとフィルムのエンティティを扱います: 多対多の関係。参加エンティティは「タガゼーション」と呼ばれます。ユーザーがモーダル ウィンドウで各フィルムにタグを追加できるようにします。そのため、index アクションで、非表示のモーダル ウィンドウを各フィルムのページにレンダリングします。問題は tag_id フィールドにあります。各フォームに Twitter ブートストラップの先行入力テキスト フィールドがあります。これらのフィールドはすべて、共通のクラス「tags-input」を共有しています。テキストフィールドの選択イベントで、set_id 関数が起動されます。

$(document).ready(function() {
function set_id(item, val, text){
    $(this).parent().children("#tagazation_tag_id").val(val);
}
$(".tags-input").typeahead({
    source: [],
    itemSelected: set_id
});
});

set_id 関数は、そのコールバックを起動したテキストフィールドと同じ形式で特定の非表示フィールドを変更することになっていますが、タグ ID には複数の非表示フィールドがあります。set_id 関数がどの映画で起動されるかを正確に知っていれば、もちろん大きな問題にはなりません。

DOM ツリー検索によるブラウジングがまだ機能していない代わりに、この問題に対処するための「標準的な」方法があるはずだと私は信じています。

4

1 に答える 1

0

あなたが何をしようとしているのか理解できれば、最も簡単な解決策は、映画ごとに 1 つのモーダル ダイアログではなく、非表示のモーダル ダイアログを 1 つだけ html にレンダリングすることだと思います。モーダルを開く直前に、javascript を使用して、モーダルがクリックされたムービーを参照するために必要なテキストを設定できます。

モーダル ダイアログが 1 つしかない場合は、非表示のタグ ID フィールドを として参照するだけでよく、$('#tagazation_tag_id')どの入力を参照しているのか混乱することはありません。

于 2013-02-10T05:39:09.113 に答える