2014-03-26 49 views
-2

我需要在django表單radioButton上執行onChange函數。我無法訪問進一步處理的功能。是否有可能不用模板來執行管理功能,因爲我曾在forms.py如下如何訪問django表單中的函數

forms.py

BoolChoices = ((0, 'Yes'), (1, 'No')) 
class myForm(forms.ModelForm): 
     myfield = forms.IntegerField(widget=forms.TextInput(attrs={'size': 7, 'disabled':True})) 
    option = forms.TypedChoiceField(choices=BoolChoices, widget=forms.RadioSelect(renderer=HorizontalRadioRenderer, attrs={'onchange':'check_status()'}), coerce=int) 

定義在views.py

def check_status(request): 
    if request.method == 'GET': 
     form = MyForm 
    else: 
     form = MyForm(request.POST) 
    if form.is_valid(): 
     opt = form.cleaned_data['option'] 
     if opt == 1: 
      form.fields['myfield'].widget.attrs['enabled'] = True 

功能所定義的形式是什麼我應該做些什麼來得到這個工作?

+0

這個問題很不清楚。 'onChange'是一個Javascript函數,但是你沒有顯示任何Javascript。 –

+0

其實我不知道如何從窗體radiobutton onChange()中訪問view.py中定義的函數check_status。我該怎麼做呢? – Ria

+0

您需要爲此使用Ajax。 – Brandon

回答

0

你需要使用AJAX:

在模板:

$(document).ready(function(){ 
function check_status(){ 
    $.get("{% url app.views.check_status %}", function(data){ 
     console.log(data); 
    } 
} 
}) 

https://api.jquery.com/jQuery.get/

這種方式,您將意見執行功能。

相關問題