在display:none元素中提交表单域
我有一个很长的forms,我分成了6个步骤。 当窗体被加载时,所有的步骤都被加载,但只有第一步是可见的。 其余的CSS display:none
所以他们隐藏。 当一个步骤完成并使用Javascript进行validation时,当前步骤设置为display:none
,新步骤设置为display:block
。 在最后一步,用户提交表单。 但是,如预期的那样,仅提交页面上的display:block
元素的字段。 display:none
的元素中的所有完成字段display:none
将被忽略。
有没有办法提交display:none
内的字段display:none
元素?
如果不是,还有另外一种方法可以达到同样的效果吗?
将它们设置为visibility:hidden
和position:absolute
代替。 这些字段不会被发送到服务器与display:none
,但将与visibility:hidden
。 通过将“位置”切换到“绝对”,您应该获得相同的视觉效果。
更新在任何当前浏览器中,这似乎不再是问题(截至2015年11月)。 即使显示设置为“无”,字段也会被提交。 然而,“禁用”的字段将不会被提交。
只是在上面的答案中添加一些内容。 如果你想使用slideDown()
– 就在它像这样设置元素的CSS之前:
$('element') .css({ display: 'none' position: 'relative', visibility: 'visible' }) .slideDown();
和slideDown()
将工作得很好。 您可以对slideUp()
使用相同的逻辑。