私は基本的なレシピ編成アプリケーションを作成しています.Ajaxを使用して、成分のリストに追加項目を動的に追加したいと考えています。プロトタイプとscriptaculousを使用して<fieldsets>を動的に追加および削除するにはどうすればよいですか?
これは、1つの成分<fieldset>
は、次のようになります。ページに付随するJavaScriptはそれぞれが持っていることを確認することで、この<fieldset>
の追加コピーを追加する(プロトタイプとScriptaculousのを使用して)最良の方法は何
<fieldset id="ingredient_item_0">
Ingredient <input id="ingredient_0" type="text" size="20" />
<div id="ingredient_list_0" style="" class="autocomplete"></div>
Amount <input id="amount_0" type="text" size="5" />
Unit <input id="unit_0" type="text" size="20" />
<div id="unit_list_0" class="autocomplete"></div>
Notes <input id="notes_0" type="text" size="20" />
<script type="text/javascript">
new Ajax.Autocompleter('ingredient_0','ingredient_list_0','ingredients.php', {'method':'get', 'paramName': 't'});
new Ajax.Autocompleter('unit_0','unit_list_0','units.php', {'method':'get', 'paramName': 't'});
</script>
</fieldset>
ユニークなIDですか?
このコードは要素を挿入するために機能しますが、要素の削除には問題があります。 "onClick = removeElement(this.id)"をテンプレートに追加しましたが、テンプレートはリスト要素です。ファンクションremoveElement(id){Effect.Fade(id); //または$(id).Fade();または新しいEffect.Fade(id); }これは、htmlファイルにハードコードされたリスト上の項目については問題なく動作します。ジャスティンが説明した方法で新しい要素を動的に追加すると、これらの要素を削除することはできません。クリックすると何も起こりません。 onclick = removeElement(this.id)の代わりに、idが挿入されたときにその値 – David