我不確定如何讓onchange屬性正確地在'position_type'選擇小部件下面工作。我希望它在字段選擇更改時「發佈」表單。目前使用這段代碼,當'onchange'觸發時,瀏覽器會指出'頁面出現錯誤',我認爲這意味着它不識別'this.form.submit();'命令。 (我是不是考慮我已經找到了其他的例子,望文生義,通過使用「this.form.submit();」原樣或者我應該在我的表格名稱來替代不知何故?)Django動態表單字段 - onchanged
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>
請避免陰影內建插件。不要將變量命名爲'dict'。儘管它有效,但在列表末尾不需要額外的逗號。只有當你有一個元組''(foo,)' – 2012-07-22 05:02:56