【问题标题】:Dynamically added form field doesn't post to server动态添加的表单字段不会发布到服务器
【发布时间】:2014-06-29 12:56:00
【问题描述】:

我在点击按钮时动态添加一个字段,代码如下:

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 完全忽略它。我想不通

【问题讨论】:

  • OT:jQuery(document.creatElement('tr')) 应该只是 jQuery('&lt;tr&gt;')
  • 你能用你的代码做一个 jsfiddle 吗?看起来它应该可以工作,但也许我错过了一些东西。
  • 浏览器是否插入了 TBODY 元素?如果是这样,插入的 TR 将在此之后出现并且无效。
  • 是的吉姆,我没有注意到:浏览器添加了 tbody 元素,但新的 tr 附加在 tbody 内

标签: javascript php jquery forms


【解决方案1】:

我根据您的代码创建了一个Fiddle

它添加了字段,但不幸的是 jsFiddle 阻止了 POSTing forms。因此我只能使用$.serialize 来查看form 会发送哪些字段。

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

表格

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

如果它们被发送,您的问题出在后端的某个地方。

【讨论】:

  • 有趣。似乎 jQuery 处理了您要附加到具有 tbody 的表的情况。
猜你喜欢
  • 2013-09-24
  • 2011-11-06
  • 2011-09-02
  • 1970-01-01
  • 2014-01-01
  • 2016-11-08
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
相关资源
最近更新 更多