动态添加的表单字段不会发布到服务器

时间:2014-06-29 12:56:01

标签: javascript php jquery forms

单击按钮时动态添加字段,使用以下代码:

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完全忽略它。我无法弄清楚

1 个答案:

答案 0 :(得分:2)

我已根据您的代码创建了Fiddle

它添加了字段,但遗憾的是jsFiddle会阻止POST ing form。因此,我只能使用$.serialize来查看从form发送的字段。

根据我的测试,$.serialize会收集所有必要的数据,POST form时会发生同样的情况。

表格

form to submit

$.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)发布的实际数据,看看它们是否是从浏览器发送的。

如果他们被发送,你的问题就在后端的某个地方。