【问题标题】:HTML Forms without actions没有动作的 HTML 表单
【发布时间】:2010-10-13 01:56:37
【问题描述】:

在 Django / Pinax 中,我遇到了这样开头的登录表单:

<form class="login" method="POST" action="">

效果很好。因此,我假设 Django 框架中的某些 java 脚本或某些东西将值放入 action 属性中。
所以,我的问题:

  • Django 如何插入动作?
  • 他们为什么这样做?
  • 我怎样才能知道这个表单的作用是什么?

更新:我发现这根本不是 Django 的事情,而是大多数浏览器所做的事情。

【问题讨论】:

    标签: html django forms django-forms


    【解决方案1】:

    有关 具有空操作的表单的有趣见解请阅读 this thread,它为您提供了有关此问题的最新 HTML5 视角。

    【讨论】:

      【解决方案2】:

      我想现在回答这个帖子有点晚了。不管怎样,我会从这件事上学到什么。

      如果表单中没有指定“动作”,那么 Django 在相应的视图中查找HttpResponseRedirect

      例如,在下面的例子中:

      if form.is_valid(): # All validation rules pass
              # Process the data in form.cleaned_data
              # ...
              return HttpResponseRedirect('/thanks/')
      

      一旦表单被验证(和处理),页面就会被重定向到'thanks'

      【讨论】:

        【解决方案3】:

        也有可能,加载该页面的 javascript 可能会在页面加载后根据正在使用该页面的应用程序设置一个操作。

        另一个可能的可能性是 javascript 正在处理 onsubmit 事件。这样做可能是为了防止页面重新加载或重定向到特定页面

        【讨论】:

          【解决方案4】:

          在大多数浏览器中,空字符串的操作会将表单指向浏览器当前加载的 URL,这是最初为表单提供服务的脚本。

          【讨论】:

          • 啊。我不知道。那么这只是懒惰还是依靠它是一种好习惯
          • 我会说好的做法,因为您减少了代码中的 url 数量。但我更喜欢根本不采取行动。是否有任何浏览器需要空操作?
          • 没有动作属性的表单在所有主流浏览器中都能正常工作。但是,如果您希望您的 HTML 进行验证,则 action 属性是必需的。
          猜你喜欢
          • 1970-01-01
          • 2015-07-22
          • 2013-05-15
          • 2010-12-10
          • 2013-08-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多