相关文章推荐
斯文的杯子  ·  Python+Django 核心介绍 - ...·  1 月前    · 
勤奋的充电器  ·  如何在Excel ...·  9 月前    · 
热心的春卷  ·  PolarDBforPostgreSQL14 ...·  2 年前    · 
害羞的饭卡  ·  如何优雅地在 React ...·  3 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams
class CronForm(forms.Form):
    days = forms.ModelChoiceField(queryset=Day.objects.all().order_by('day'))
class Day(models.Model):
    day = models.CharField(max_length=200, default='')
    month = models.CharField(max_length=200, default='')
    def __unicode__(self):
        return self.day

And It is shown at the template this way:

<form method="post" onchange=change()>
    {{ days }}
</form>

What I want is to submit this form when the user selects an option from the dropdown list. For example, the user could be redirected to a new url, and internally the program would capture the POST data. But everything I find is related to the <select> tag, like calling a javascript function onchange of the select element. But as the select element is IN the ModelChoiceField form, I don't know how to do it. Any help would be very appreciated!

and if I only want to filter the objects that are shown? I have tried queryset=Day.objects.get(Q(day="15")).order_by('alias'), queryset=Day.objects.filter(day="15").order_by('alias') and many other options to no avail – toni May 14, 2013 at 7:14

Find the id of the dropdown using firebug. It should be id_days as you are using the name days. Then bind jQuery change event to it.

$(function(){
    $('#id_days').change(function(){
        $('#id_of_form').submit();
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.