장고

2011-02-08 1 views
7
선택

에 게시 양식 나는 (라디오 버튼에서) 선택 목록과 간단한 장고 양식을 만든 . 간단한 HTML에서 나는장고

<select name='myselect' onChange="FORM_NAME.submit();"> 
    .... 
    </select> 

로 했하지만 템플릿을 작성하지 않고 폼 클래스에이를 통합하는 방법을 모르겠어요. 특히, FORM_NAME을 알아야하므로 위의 코드에서 FORM_NAME.submit()으로 전화 할 수 있습니다. 템플릿을 사용하지 않고 완료 할 수 있습니까?

답변

14

양식 이름을 알 필요가 없다고 생각합니다. 이것은 잘 작동합니다 :

<select name='myselect' onChange="this.form.submit();"> 

빠른 솔루션을 attribute to your widget를 추가 포함 할 양식이 점을 통합 할 수 있습니다.

widget=forms.RadioSelect(attrs={'onchange': 'this.form.submit();'}) 

지금이 더 나은 (정의, 스타일과 행동을 분리) 양식 정의에서 분리되지 않은 경우 하나를 주장 할 수 있지만, 그것을해야한다.

+2

요소 속성으로 인라인 이벤트 처리? 그것은 과거로부터의 폭발입니다! 당신이 jQuery를 포함하고 그것에 익숙해 질 수 있다면 그 접근 방법을 사용하면 쉽게 onChange 속성을 완전히 삭제할 수 있습니다. jQuery를 통해 select 요소 변경 이벤트에 양식 제출 작업을 바인딩 할 수 있습니다. "이벤트. – trojjer

+0

다음과 같이 "onChange"를 제거 할 수 있습니다 : $ (function {) {$ ('# id_myselect' 속성을 HTML 태그 (ID 포함)는 다음과 같습니다.