在display:none元素中提交表单域

我有一个很长的forms,我分成了6个步骤。 当窗体被加载时,所有的步骤都被加载,但只有第一步是可见的。 其余的CSS display:none所以他们隐藏。 当一个步骤完成并使用Javascript进行validation时,当前步骤设置为display:none ,新步骤设置为display:block 。 在最后一步,用户提交表单。 但是,如预期的那样,仅提交页面上的display:block元素的字段。 display:none的元素中的所有完成字段display:none将被忽略。

有没有办法提交display:none内的字段display:none元素?

如果不是,还有另外一种方法可以达到同样的效果吗?

将它们设置为visibility:hiddenposition:absolute代替。 这些字段不会被发送到服务器与display:none ,但将与visibility:hidden 。 通过将“位置”切换到“绝对”,您应该获得相同的视觉效果。

更新在任何当前浏览器中,这似乎不再是问题(截至2015年11月)。 即使显示设置为“无”,字段也会被提交。 然而,“禁用”的字段将不会被提交。

只是在上面的答案中添加一些内容。 如果你想使用slideDown() – 就在它像这样设置元素的CSS之前:

 $('element') .css({ display: 'none' position: 'relative', visibility: 'visible' }) .slideDown(); 

slideDown()将工作得很好。 您可以对slideUp()使用相同的逻辑。