我需要创建收据。 用户可以创建由不同数量的成分组成的新产品。
我使用表格来布局输入,并且在每一行上都有一个使用以下代码生成的现有成分的选择列表:
<?php echo $this->Form->input('Receipt.0.ingredient_id', array( 'label' => false,'div' => false, 'class' => ''));
生成以下html
<select id="Receipt0IngredientId" class="" name="data[Receipt][0][ingredient_id]">
<option value="1">Ingredient B</option>
<option value="3">Ingredient B</option>
<option value="4">Ingredient B</option>
</select>
和另一个输入所需成分量的字段。
<?php echo $this->Form->input('Receipt.0.amount', array( 'label' => false,'div' => false, 'class' => '')); ?>
事情是各种成分会因产品而异,目前我在使用jQuery添加新行时,点击用户添加新行按钮,但我不知道如何更改每个行的名称值领域 jQuery代码:
$("#addNewLine").click(function() {
$('#add_ingredient tbody>tr:last').clone(true).insertAfter('#add_ingredient tbody>tr:last');
return false;
});
我不确定这是否是实现此目的的最佳方式。任何帮助或建议将不胜感激,谢谢。
答案 0 :(得分:0)
当用户点击添加新行按钮时,我正在使用jQuery添加新行,但我不知道如何更改每个字段的名称值
克隆元素时,可以在插入之前(或之后)修改它:
$('#add_ingredient tbody>tr:last').clone(true)
.attr("name", "new name here")
.insertAfter('#add_ingredient tbody>tr:last');
如果您发布更多细节,例如,在更改之前显示html,然后是您希望新html看起来像什么的示例,那么我可以提供更详细的建议。
P.S。你在谈论“收据”还是“食谱”?
答案 1 :(得分:0)
试试这个,
首先使用
计算html中选择框的数量var count = $('select').size();
然后, 根据需要添加selectbox html,
$('body').append('<select id="Receipt'+count+'IngredientId" class="" name="data[Receipt]['+count+'][ingredient_id]">
<option value="1">Ingredient B</option>
<option value="3">Ingredient B</option>
<option value="4">Ingredient B</option>
</select>');