HTML-формы без действий - PullRequest
25 голосов
/ 13 марта 2009

В Django / Pinax я наткнулся на форму входа, которая начинается так:

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

Работает отлично. Поэтому я предполагаю, что какой-то java-скрипт или что-то в структуре Django помещает значение в атрибут action.
Итак, мои вопросы:

  • Как Django вставляет действие?
  • Почему они так делают?
  • Как я могу узнать, что действие этой формы?

Обновление: я вижу, что это вовсе не Django, а то, что делает большинство браузеров.

Ответы [ 4 ]

32 голосов
/ 13 марта 2009

В большинстве браузеров действие с пустой строкой указывает на URL-адрес, загруженный браузером в данный момент, - это, в первую очередь, скрипт, обслуживающий форму.

5 голосов
/ 17 августа 2012

Для интересного понимания форм с пустыми действиями прочитайте эту ветку , которая дает вам обновленную перспективу HTML5 по этому вопросу.

2 голосов
/ 13 марта 2009

Также возможно, что javascript, загруженный с этой страницы, может задавать действие после загрузки страницы в зависимости от того, какое приложение использует страницу.

Другая вероятная возможность заключается в том, что javascript обрабатывает событие onsubmit. Можно сделать это, чтобы предотвратить перезагрузку или перенаправление страницы на определенную страницу

0 голосов
/ 24 июля 2014

Полагаю, уже поздно отвечать на этот пост. В любом случае, я узнаю то, что узнал об этом.

Если «действие» не указано в формах, Django ищет HttpResponseRedirect в соответствующем представлении.

Например, в приведенном ниже примере:

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

Как только форма проверена (и обработана), страница перенаправляется на «спасибо»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...