0

我想在一个新表单中发布所有表单字段,然后提交。我使用这段代码:

function submitAllDocumentForms() {
            var arrDocForms = document.getElementsByTagName('form');
            var formCollector = document.createElement("form");
            with(formCollector)
            {
                method = "post";
                action = "";
                name = "formCollector";
                id = "formCollector";
            }
            for(var ix=0;ix<arrDocForms.length;ix++) {
                appendFormVals2Form(arrDocForms[ix], formCollector);
            }
            document.body.appendChild(formCollector);
            formCollector.submit();

            }
        /* Function: add all elements from ``frmCollectFrom´´ and append them to ``frmCollector´´ before returning ``frmCollector´´*/
        function appendFormVals2Form(frmCollectFrom, frmCollector) {
            var frm = frmCollectFrom.elements;
            for(var ix = 0 ; ix < frm.length ; ix++)
                frmCollector.appendChild(frm[ix]);
            return frmCollector;
        }

但它每隔一个字段提交一次。我该如何解决?我的表格如下所示:

<form method="post">
<select class="..">
                                    <option value="">?</option>
                                    <option value=""></option>
                                    <option value=""></option>
                                    <option value=""></option>
                                </select>
</form>

4

1 回答 1

0

由于您在问题中标记了 jQuery,我认为以下应该可以工作。

$('<form />', {method:'POST'}).append($('form :input')).submit();

这将创建一个新form元素并将method属性设置为POST。然后它附加页面上所有其他form元素的输入。最后它提交你新创建的form元素。

于 2013-05-24T19:12:24.877 回答