我有一个动态HTML表单,我根据用户在表单上的回答来使用Javascript添加/删除字段。表单包含三个步骤,各自有问题,每个步骤在用户完成后都会被禁用,而下一步则由我的javascript代码自动生成,以便他们继续填写表单。
我遇到的问题是,当表单发布到PHP时,我发现所有禁用的表单元素都没有提交,结果证明这是标准功能。您不能在表单中提交已禁用的元素,就是这样。
所以我做了以下事情:
$("#submitAll").click(function() {
enableStep1();
enableStep2();
});
因此,当用户点击提交按钮时,他们会被带到感谢页面,他们的表单会在一瞬间被启用,以便提交。我对此感到有点紧张,这是一个可怕的想法,有谁知道会出现什么问题?
我已经阅读了其他解决方案,例如Tomcat context docs,但我想知道我的解决方案是不是很糟糕。
答案 0 :(得分:0)
是的,这是一个不好的做法,因为JavaScript可以被禁用,然后您的表单不再按预期工作。也许您应该查看表单元素的readonly属性。
要明确:将已禁用JavaScript的用户考虑在内并不是您不得不担心的事情。但这仍然是不好的做法,因为有完整的工具可以完成工作而你不需要用JavaScript来破解它。