2012-07-21 3 views
0

아래 'position_type'선택 위젯에서 onchange 속성을 올바르게 처리하는 방법을 잘 모르겠습니다. 필드 선택이 변경되면 양식을 '게시'하고 싶습니다. 현재이 코드를 사용하면 브라우저는 결과적으로 'this.form.submit();을 인식하지 못한다고 가정하는'onchange '가 실행될 때'페이지에 오류 '가 있음을 나타냅니다. 명령.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) 

내 템플릿 코드 .. (그대로 또는 어떻게 든 내 양식의 이름으로 대체한다 'this.form.submit()'나도 그대로 사용하여 내가 찾은 다른 예제를 가지고 있습니까?) ... 코드와

<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,) '가있을 때만 –

답변

0

OK 유일한 문제는 올바른 명령 this.form.submit() 때 웹에서 예 내가 명령 this.form.submit();을 사용하여 복사 한 것입니다. 희망에 따라 다른 사람이 저장됩니다. 동적 필드는 현재 완벽하게 작동하며 선택 항목에 따라 필요에 따라 이동합니다.

+0

'this.form.submit(); '을 사용하여 다시 테스트했습니다. 이것도 이제 작동합니다. 그래서 나는 그 문제가 정확히 무엇인지 정확히 알지 못합니다! – Ninga