Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在提交表单时启用表单元素以便发布它们是否是一种不好的做法?_Javascript_Html_Forms - Fatal编程技术网

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

Javascript 在提交表单时启用表单元素以便发布它们是否是一种不好的做法?,javascript,html,forms,Javascript,Html,Forms,我有一个动态HTML表单,根据用户在表单上的回答,使用Javascript添加/删除字段。表单包含三个步骤,每个步骤都有自己的问题,每个步骤在用户完成后都将被禁用,而下一步将由我的javascript代码自动生成,以便他们继续填写表单 我遇到的问题是,当表单发布到PHP时,我发现所有禁用的表单元素都没有提交,结果证明这是标准功能。不能在表单中提交禁用的元素,就是这样 因此,我做了以下工作: $("#submitAll").click(function() { enable

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

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

因此,我做了以下工作:

$("#submitAll").click(function() {
            enableStep1();
            enableStep2();
        });
因此,当用户单击submit按钮时,他们会被带到thank you页面,并且他们的表单在之前的一瞬间全部启用,以便提交。我对此感到有点紧张,这是一个可怕的想法吗?有人知道会出什么问题吗


我已经读过其他解决方案,如中的,但我想知道我的解决方案是否完全糟糕。

是的,这是一种不好的做法,因为可以禁用JavaScript,然后表单就不能按预期工作了。也许您应该研究表单元素的readonly属性


需要明确的是:考虑禁用了JavaScript的用户实际上不再需要担心了。但这仍然是一种不好的做法,因为有内置的工具来完成任务,您不需要JavaScript来破解它。

听说过吗?禁用输入,但允许成功提交。编写代码来解决已解决的只读问题通常不是一个好主意:当您意识到您键入的是而不是your@AbdulAhmad小问题;但是由于它是动态的,如果禁用Javascript,它会不会根本不工作?@pjcat这取决于您如何设置。最好考虑一下,您的应用程序在没有启用JavaScript的情况下也可以工作。当然,在构建单页应用程序或其他应用程序时,这有点困难,但听起来并不像你真的拥有这样的应用程序。如果你担心没有JavaScript的人,你需要回到1998年。虽然您需要进行服务器端验证,以确保禁用JavaScript的恶意人员不会破坏您的系统,但说您不应该这样做,因为可能有人没有JavaScript,这种想法如今已成为一种边缘案例。是否有特定的网站需要考虑这一点?当然网络总体上是什么?不