Django动态表单字段 - onchanged

时间:2012-07-21 13:57:42

标签: django-forms django-templates

我不确定如何让onchange属性正确地在下面的'position_type'选择小部件上运行。我希望它在更改字段选择时“发布”表单。目前使用此代码时,浏览器会在“onchange”触发时显示“页面错误”,我认为这意味着它无法识别结果'this.form.submit();'命令。 (我是否通过使用'this.form.submit();以及我应该以某种方式在我的表单名称中替换其他示例,我已经找到了字面意思?)

class tranny_form(forms.Form):

   def __init__(self, *args, **kwargs):
           super(tranny_form, self).__init__(*args, **kwargs)
           dict=args[0]  #this extracts the settings passed to 'tranny_form' as a dict

           position_list = [('GGA','GGA'),('DD','DD'),('UTM','UTM'),]
           self.fields['position_type'] = forms.CharField(widget=forms.Select(choices=position_list, attrs={'onchange':'this.form.submit();'}))

           if dict.get('position_type') in ['DD','UTM',]: 
               self.fields['easting_longitude_column'] = forms.IntegerField(max_value=100, min_value=1)
               self.fields['northing_latitude_column'] = forms.IntegerField(max_value=100, min_value=1)

我的模板代码......

<form action="" enctype="multipart/form-data" method="post"> {% csrf_token %}
    <table>
        {{ form.as_table }}
    </table> </br>
    <input type="submit" value="Submit"></br>
</form>

1 个答案:

答案 0 :(得分:1)

确定代码的唯一问题是,当正确的命令为this.form.submit();时,我正在复制的Web上的示例使用命令this.form.submit()。 希望这可以节省其他一些。我的动态字段现在可以很好地工作,并根据选择的要求来去。