Django

2011-02-08 27 views
7
seçme

üzerine yazılan formu I (radyo düğmeleri olarak) seçenekler listesi ile, basit bir Django formu yapılmış . basit HTML benDjango

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

olarak yapardım Ama bir şablon yazmadan formu sınıfa bu nasıl entegre bilmiyorum. Özellikle, FORM_NAME'u bilmem gerekiyor, bu yüzden yukarıdaki snippet'te FORM_NAME.submit()'u arayabiliyorum. Şablon kullanmadan yapılabilir mi?

cevap

14

Form adını bilmeniz gerekmez. Bu aynı zamanda çalışmalıdır:

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

hızlı bir çözüm bir attribute to your widget ekleyerek yer alacağı formunuzda içine bu entegre etmek.

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

Şimdi bu daha iyi (tanım, stil ve davranışı ayıran), form tanımının ayrılmış değilse bir iddia olabilir, ama o kadar yapmalıdır.

+2

Satır içi olay işleme öğesi özniteliği olarak mı? Bu geçmişten bir patlama! JQuery'yi dahil edip onunla kavrayışa kavuşursanız, jQuery "belgesini hazırla" seç öğesi değişikliği olayına form gönderme eylemini bağlama lehine onChange özniteliğini kolayca bırakmanıza izin veren bu yaklaşıma gidersiniz " Etkinlik. Bu daha iyi gösterilir: $ (function() {$ ('# id_myselect'). Değiştir (function() {this.form.submit();})}); ' – trojjer

+0

Sonra" onChange "öğesini kaldırabilirsiniz. HTML etiketi (kimliğine sahip) şöyle görünecektir: