У меня есть поле поиска в верхней части моего шаблона django (без тегов окружающих форм):
<input name="q" id="id_q" />
<input type="submit" id="id_s" value="Search">
На данный момент ключ поиска передается нажатием кнопки или нажатием ввода:
$(function($) {
$(":submit").click(function() {
window.location = "{% url search %}?q=" + $("#id_q").val();
});
});
Теперь я добавляю в django-registration . В результате у меня есть шаблон входа, похожий на следующий:
<form method="post" action=".">{% csrf_token %}
{% if form.non_field_errors %}
<div class="form_errors">
{% for err in form.non_field_errors %}
<div class="form_error_message">{{ err }}</div>
{% endfor %}
</div>
{% endif %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
<div class="block">
{{ field.label_tag }}
{{ field }}
{% for err in field.errors %}
<span class="error_message">{{ err }}</span>
{% endfor %}
</div>
{% endfor %}
<div style="padding-left:11em; padding-bottom:1em;">
<input type="submit" value="{% trans 'Log in' %}" />
<input type="hidden" name="next" value="{{ next }}" />
</div>
</form>
Мне потребовалось некоторое время, чтобы понять, почему попытка войти в систему привела меня на страницу поиска. Я понял, что нажатие Enter после ввода пароля активирует ключ поиска, а не ввод имени пользователя / пароля.
Как настроить шаблон таким образом, чтобы я мог вводить поисковый запрос, нажимать клавишу ввода и активировать вид поиска ИЛИ вводить данные своей учетной записи, нажимать клавишу ввода и входить в систему? В основном, как я могу указать, что нажатие клавиши ввода «принадлежит» его необходимой функции?