单击按钮时动态添加字段,使用以下代码:
jQuery("#yasr-add-field-edit-multiset").on('click', function() {
var newTextBoxDiv = jQuery(document.createElement('tr'))
newTextBoxDiv.html(' \
<td colspan="2">Element #' + counter + ' <input type="text" name="edit-multi-set-element-' + counter + ' " value="" > \
<input type="hidden" name="stored_field_id_for_row_' + counter + ' " value=" ' + counter + ' "></td> \
');
newTextBoxDiv.appendTo("#yasr-table-form-edit-multi-set");
这是显示的表格和表格
<form action=" <?php echo admin_url('options-general.php?page=yasr_settings_page') ?>" id="form_edit_multi_set" method="post">
<input type="hidden" name="yasr_edit_multi_set_form" value="<?php echo $set_type ?>" />
<table id="yasr-table-form-edit-multi-set">
<tr>
<td id="yasr-table-form-edit-multi-set-header">
//Code
</td>
<td id="yasr-table-form-edit-multi-set-remove">
//code
</td>
</tr>
</table>
</form>
当我从动态添加的输入字段中勾选一个值时,它不会发送到服务器,$ _POST完全忽略它。我无法弄清楚
答案 0 :(得分:2)
我已根据您的代码创建了Fiddle。
它添加了字段,但遗憾的是jsFiddle会阻止POST
ing form
。因此,我只能使用$.serialize
来查看从form
发送的字段。
根据我的测试,$.serialize
会收集所有必要的数据,POST
form
时会发生同样的情况。
$.serialize
的控制台输出:
yasr_edit_multi_set_form=1&
edit-multi-set-element-0=hello&
stored_field_id_for_row_0=0&
edit-multi-set-element-1=world&
stored_field_id_for_row_1=1
我的猜测是你的问题出在其他地方。请务必检查(Chrome开发工具/ Firebug)发布的实际数据,看看它们是否是从浏览器发送的。
如果他们被发送,你的问题就在后端的某个地方。