我使用JS创建表单 - 它的结构为:
$('.dropme').sortable({
connectWith: '.dropme',
cursor: 'pointer',
stop: function(event, ui) {
var $li = $('<div>').html('List ' + ui.item.html());
$li.appendTo(this);
alert('dropped');
}
});
我想验证<form>
[other input fields here]
// these rows added via JS
<ul>
<li>
<input name="field[0][id]">
<input name="field[0][data]">
</li>
<li>
<input name="field[1][id]">
<input name="field[1][data]">
</li>
...
</form>
字段。因此,对于我的表单,我已经构建了一个子表单id
,我将其添加到我的表单中,并且......我在field
内难倒了我不知道会有多少行。
有没有办法添加不确定数量的子表单(类似于将init()
声明为多值,如果有意义的话),或者,我是否必须将子表单的创建移动到multiselect[]
?
我已将功能移至isValid()
,结果令人惊讶。我的代码:
isValid()
POST:
foreach($values['field'] as $index => $values)
{
$index_form = new Zend_Form_SubForm();
$values_form = new Zend_Form_SubForm();
$data = new Zend_Form_Element_Text('data');
$values_form->addElement($data);
$index_form->addSubForm($values_form, $index);
$this->addSubForm($index_form, "field");
}
的GetValues():
array (size=5)
-5 =>
array (size=1)
'data' => string '13' (length=2)
-4 =>
array (size=1)
'data' => string '10' (length=2)
-3 =>
array (size=1)
'data' => string '11' (length=2)
-2 =>
array (size=1)
'data' => string '12' (length=2)
-1 =>
array (size=1)
'data' => string '15' (length=2)
虽然我理解为什么字段名称被重命名(我可以使用它)但我不明白为什么最后只有一个值(即使每个子表单都有不同的名称)。< / p>