web-dev-qa-db-ja.com

アクションのないHTMLフォーム

Django/Pinaxで、次のように始まるログインフォームに出くわしました:

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

それは完全にうまく機能します。したがって、JavaスクリプトまたはDjangoフレームワークの何かが値をaction属性に入れていると思います。
それで、私の質問:

  • Djangoアクションを挿入するにはどうすればよいですか?
  • なぜ彼らはこのようにするのですか?
  • このフォームのアクションを確認するにはどうすればよいですか?

更新:これはDjangoのことではありませんが、ほとんどのブラウザーが行うことです。

25
interstar

ほとんどのブラウザで空の文字列のアクションがあると、ブラウザが現在ロードしているURLをフォームが指します。これは、最初にフォームを提供したスクリプトです。

32
yaauie

空のアクションを持つフォーム読み取り このスレッド に関する興味深い洞察については、この問題に関する更新されたHTML5パースペクティブを提供します。

5
Nobita

また、このページで読み込まれたjavascriptが、ページを使用しているアプリケーションに基づいて、ページが読み込まれたときにアクションを設定している可能性もあります。

もう1つの可能性は、JavaScriptがonsubmitイベントを処理していることです。ページが特定のページに再読み込みまたはリダイレクトされないようにするために、これを行う場合があります。

2
jottos

この投稿に答えるのは少し遅いと思います。とにかく、私はこれについて学んだことをします。

「アクション」がフォームで指定されていない場合、Djangoは対応するビューでHttpResponseRedirectを検索します。

たとえば、次の例では次のようになります。

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

フォームが検証(および処理)されると、ページは「thanks」にリダイレクトされます

0
CuriousCoder