javascript - 是否可以在页面上拆分 <form> 标记?

标签 javascript html forms

实际上是否可以像这样分割标签:

Form with a ComboBox field (submites with onchange)

Some random content

Another form with an ComboBox (submites with onchange)

如果我只更改一个盒子的状态,是否真的可以将数据一起发送?

最佳答案

HTML 5 为 input 和其他表单控件引入了 form 属性,该属性允许元素成为表单的一部分,而无需实际出现在表单中。

<input form="form_id" name="foo">

浏览器支持仍然是somewhat limited不过,您最好让表单也包含中间内容。

如果您想添加 JavaScript,那么(当提交任一表单时)您可以循环遍历第二个表单中的所有表单控件并将它们附加到第一个表单。然后,第二个表单将触发第一个表单的提交。

(未经测试)

var form1 = document.getElementById('f1');
var form2 = document.getElementById('f2');

function copy() {
    for (var i = 0; i < form2.elements.length; i++) {
        var inp = document.createElement('input');
        inp.type = "hidden";
        inp.name = form2.elements[i].name;
        inp.value = form2.elements[i].value;
        form1.appendChild(inp);
    }
}

form1.addEventListener('submit', copy);
form2.addEventListener('submit', function (e) {
    e.preventDefault();
    copy();
    form1.submit();
});

尽管如此,仅使表单足够大以容纳所有控件仍然是最简单且最可靠的方法。

关于javascript - 是否可以在页面上拆分 <form> 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308248/

相关文章:

javascript - 数组 JavaScript 输出

javascript - jquery isotope 插件容器高度不会随着 isotope-item 增长(与 masonry 相同)

html - 使用 bootstrap 以表格形式显示表单

javascript - 当用户点击西类牙语翻译时切换到不同的形式

javascript - 覆盖导航不透明度变化

javascript - FF6 CSS Javascript MozBorderRadius 不工作

javascript - 使用表单动态更改地址栏中的 URL 第 2 部分

将字段留空时 PHP 表单错误

javascript - $(document).ready 中的 jquery 的 removeAttr 函数不起作用

jquery - 动态获取ID