сохранить выбранное значение в html-форме после нажатия кнопки submit - PullRequest
0 голосов
/ 21 января 2012

У меня есть простая форма с парой вариантов выбора.Чтобы проиллюстрировать это:

<form action="" method=GET>
    <select name="sort">
        <option value="name">name
        <option value="age">age
        <option value="gender">gender
        <option value="location">location
    </select>
    <input type="submit" value="sort">
</form>

Скажите, что пользователь использует форму, выбирает пол и нажимает кнопку отправки.

Я сортирую записи на основе ввода пользователя (кстати, в Django)и затем я отображаю ту же страницу, но отсортированную так, как этого хотел пользователь.

Мой вопрос: могу ли я как-то сохранить в форме выбранное значение пола, а не имени, которое является первым?

1 Ответ

0 голосов
/ 21 января 2012

Передайте текущее поле сортировки обратно в шаблон, затем пометьте эту опцию как selected согласно документации по опции: https://developer.mozilla.org/en/HTML/Element/option

<option value="name" {% if sort == 'name' %}selected{% endif %}>name</option>
<option value="age" {% if sort == 'age' %}selected{% endif %}>age</option>
<option value="gender" {% if sort == 'gender' %}selected{% endif %}>gender</option>
<option value="location" {% if sort == 'location' %}selected{% endif %}>location</option>

Все было бы проще, если бы вы использовали каркас форм django.

class SortForm(forms.Form):
    sort = forms.ChoiceField(choices=[(x, x) for x in ['name', 'age', 'gender', 'location']])

def myview(request):
    form = SortForm(request.GET or None)
    # apply sort
    return render(request, "mytemplate.html", {'form': form})

{{ form.as_p }} # this would auto select whatever the form is bound with.
...