2011-04-27 66 views
1

我有我outputing沒有問題,Django的形式。Django的模板field.is_required解決

我的問題是關於jQuery驗證。
我想jQuery驗證適用於被要求輸入。
我使用http://docs.jquery.com/Plugins/validation

有沒有field.is_required,我可以在模板中使用
所以我使用了help_text和評估,在我的模板。

只是想知道這是否是去了解這一點的最好方法是什麼?

任何建議非常讚賞。

這裏是:

1)Form類

class UserDetailsForm(forms.Form): 

    city_town = forms.CharField(label='City/Town',max_length=100, required=True, help_text='*') 
    state_province = forms.CharField(label='State/Province',max_length=100, required=True, help_text='*') 

2)形式輸出

{% for field in form %} 
<div class="fieldWrapper"> 
{{ field.errors }} 
{{ field.label_tag }}: {{ field.help_text }} {{ field }} 
</div> 
{% endfor %} 

3)表單jQuery驗證

// Form Validation Setup 
{% for field in form %} 
{% if field.help_text == '*' %} 
$("input[name='{{ field.html_name }}']").addClass('required'); 
{% endif %} 
{% endfor %} 
$("#updateProfileForm").validate(); 

有沒有更好的方法比第四工作是圍繞我使用:

if field.help_text == '*' 

我可能要使用該領域的東西的工具提示後
但現在我使用一個星號,所以我可以在jQuery的循環使用驗證
在模板中。

謝謝!

回答

2

當您遍歷表單實例時,__iter__方法返回BoundField(處理渲染和其他雜項)。此綁定字段具有存儲實際字段實例(其存儲所需屬性)的字段屬性。所以你可以做

{% if field.field.required %} 
    $("input[name='{{ field.html_name }}']").addClass('required'); 
{% endif %} 
+0

我也這麼認爲,但實際上並非如此。 – 2011-04-27 03:59:02

+0

@Torsten你使用的是什麼版本? – 2011-04-27 04:04:58

+0

@Torsten:'field.field.required'將起作用。看到我更新的答案。 – sdolan 2011-04-27 04:05:53

1

只需將其添加到您的模型。這會將類'required'添加到您的表單中。

city_town.widget.attrs['class'] = 'required' 
+0

謝謝。這個選項也很棒。第一個答案和這個對我來說都很好。 – Jacob 2011-04-27 04:38:24