2012-07-21 42 views
0

我不確定如何讓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> 
+0

請避免陰影內建插件。不要將變量命名爲'dict'。儘管它有效,但在列表末尾不需要額外的逗號。只有當你有一個元組''(foo,)' – 2012-07-22 05:02:56

回答

0

確定的代碼唯一的問題是,在網絡上的例子,我用複製命令this.form.submit();時,正確的命令是this.form.submit()。 希望這可以節省一些人。我的動態領域現在完美運作,並按要求進行選擇。

+0

我重新測試了'this.form.submit();'這現在也起作用。所以我不確定問題到底是什麼! – Ninga 2012-07-23 06:15:52