在提交时启用表单元素以便发布它们是不好的做法吗?

时间:2015-05-01 12:16:50

标签: javascript html forms

我有一个动态HTML表单,我根据用户在表单上的回答来使用Javascript添加/删除字段。表单包含三个步骤,各自有问题,每个步骤在用户完成后都会被禁用,而下一步则由我的javascript代码自动生成,以便他们继续填写表单。

我遇到的问题是,当表单发布到PHP时,我发现所有禁用的表单元素都没有提交,结果证明这是标准功能。您不能在表单中提交已禁用的元素,就是这样。

所以我做了以下事情:

$("#submitAll").click(function() {
            enableStep1();
            enableStep2();
        });

因此,当用户点击提交按钮时,他们会被带到感谢页面,他们的表单会在一瞬间被启用,以便提交。我对此感到有点紧张,这是一个可怕的想法,有谁知道会出现什么问题?

我已经阅读了其他解决方案,例如Tomcat context docs,但我想知道我的解决方案是不是很糟糕。

1 个答案:

答案 0 :(得分:0)

是的,这是一个不好的做法,因为JavaScript可以被禁用,然后您的表单不再按预期工作。也许您应该查看表单元素的readonly属性。

要明确:将已禁用JavaScript的用户考虑在内并不是您不得不担心的事情。但这仍然是不好的做法,因为有完整的工具可以完成工作而你不需要用JavaScript来破解它。