2012-04-04 11 views
0

私はRailsアプリケーションでJquery TokenInputを使用して、ユーザーが情報をすばやく入力できるようにしています。各ユーザーには、同じクラスの多数のアイテムがあるプロファイルがあり、それを「college_items」と呼んでください。各college_itemには独自の編集リンクがあり、モーダルの適切な編集フォームをモーダルにポップアップします。同じJQueryトークン入力ボックスをページ上で複数回使用する

私はライアンベイツのスクリーンキャストを踏襲し、TokenInputは、次のコードを使用して正常に動作していました:私の見解では

$(function() { 
$("#education_major_tokens").tokenInput("/majors.json", { 
    theme: "facebook" 
    }) 
}); 

:application.jsで
を私のモデルでは

<%= f.text_field :major_tokens %> 

def major_tokens=(ids) 
self.major_ids = ids.split(",") 
end 


私が実行している問題は、この同じフィールドが各編集フォームに表示されることです。そのため、最初のアイテムの編集フォームではすべてが完全に機能しますが、他のアイテムの編集フォームではJavaScriptは初期化されません。私の質問は、このフォーム要素が表示されるたびに初期化するようにjavascriptを変更する方法です。

EDIT: 私はこのような何かが解決策になるかもしれないと思った:

$(function() { 
$("#education_major_tokens").each(function(){ 
    $(this).tokenInput("/majors.json", { 
    theme: "facebook" 
    }) 
    }); 
}); 

が、それはまだ私のために働いていません。誰でもそこに誰かアイデアがありますか?

EDIT 2: これを最後に考え出します。 #education_major_tokensを使用する代わりに、私は各入力を以下のように設定します:class => "major_input"とコードの "#education_major_tokens"を ".major_input"に変更しました

答えて

1

これは少し遅れたと思いますしかし、

<input class="yourtokenfield" type="text" /> 

その使用この

$(function() { 
$(".yourtokenfield").each(function(){ 
    $(this).tokenInput("/majors.json", { 
    theme: "facebook" 
    }) 
    }); 
}); 

た後、私はあなたの問題は、クラスのために不適切な名前が原因であると思うし、IDを覚えて、一度だけ、あなたの中に現れなければならない、あなたのトークン・フィールドにクラスを割り当てようHTMLドキュメント。

関連する問題