我的网站上有很多使用jQuery ajax提交的表单。当我最近禁用JavaScript进行一些测试时,我注意到这些表单以通常的方式提交。
当javascript不可用或禁用时,有什么可以阻止它们被提交吗?
我的表单没有method
或action
。这些是在ajax本身中指定的。我使用button
代替
我可以做些什么来阻止他们被提交?
我知道我可以在页面加载后生成/启用按钮和内容,但如果用户在页面加载后故意禁用JavaScript会怎么样?
答案 0 :(得分:1)
如果您将提交按钮设为div,a或标签以外的任何内容,则不会使用表单包装器发布。这允许根据您的需要进行优雅降级。除非JavaScript已启用并正在侦听,否则在不使用表单时不会起作用。在这种情况下使用a标签将允许您仍然提交,如果您需要,但通过ahref属性而不是表单操作。互联网探索者也可能表现得不同,所以要留意并彻底测试。
另见: 何时使用按钮元素 http://css-tricks.com/use-button-element/
答案 1 :(得分:1)
我的建议是处理服务器端逻辑中的错误表单帖子。这个表格必须正确到位。然后,如果用户已禁用js,则仍会进行有效性检查,以防止垃圾邮件进入服务器。最终,用户可以选择启用或禁用它。这样可以防止机器人和其他垃圾邮件进入服务器的数据库。