【问题标题】:JavaScript removing contents of form hidden by animatedcollapse.hideJavaScript 删除由 animatedcollapse.hide 隐藏的表单内容
【发布时间】:2011-10-12 19:07:14
【问题描述】:

我正在使用 JavaScript 在我制作的简单 Web 表单中隐藏和显示 div 内容。

但是,我注意到提交的表单(它将表单作为字典发送到 Python CGI)可能仍然包含隐藏项的非空提交值。通常,这是因为您在字段 X 中输入了一些值,单击隐藏包含字段 X 的 div 的链接,然后提交。

我知道当 div 被隐藏时,我可以手动清除 div 中的所有输入字段(即字段 X 等),但有没有更优雅的方法来完成此操作?

【问题讨论】:

  • 如果你想要一些优雅的东西,你可以查看 jQuery,并在提交之前删除所有隐藏元素,如 $("#form :hidden").remove()
  • +1 那么在我的表单声明中添加onSubmit="$(\"#form :hidden\").remove()" 就足够了吗?如果是这样,您应该重新发布作为答案!

标签: javascript forms cgi


【解决方案1】:

使用 jQuery,您可以使 DOM 操作既简单又优雅。

根据您的需要,您可以在提交前移除隐藏的输入元素:http://jsfiddle.net/tTzn2/

$("form").submit(function() {
    $(this).find(":hidden").remove(); // hide hidden elements before submitting
});

【讨论】:

  • 对不起——我把这段代码放在哪里?我尝试将它放在 <head> 中的 <script type="text/javascript"> 声明中,但我仍然看到我的隐藏值通过了;也许我犯了一个错误?
  • @Oliver:我不确定您对 jQuery 的经验如何,但通常这会进入$(document).ready(function() { ... }) 块。还要确保您实际上包含带有 <script src="..."> 标记的 jQuery。
  • +1 完美!我现在已经说服 Django 我正在提交一个跨站点请求伪造,但它可以在 CSRF 关闭的情况下工作。现在让 Django 相信这没关系...
猜你喜欢
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多