1

私は問題なく出力しているdjangoフォームを持っています。

私の質問は、jQuery Validation に関するものです。
必要な入力に jQuery 検証を適用したいと考えています。http://docs.jquery.com/Plugins/validation
を使用しています

テンプレートで使用できる field.is_required がない
ため、テンプレートで help_text を使用して評価しています。

これがこれを行うための最良の方法であるかどうか疑問に思っていますか?

どんなアドバイスでも大歓迎です。

ここは:

1) フォームクラス

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 検証のループで使用できます。

ありがとう!

4

2 に答える 2

2

フォーム インスタンスを反復処理すると、__iter__メソッドはBoundField(レンダリングやその他のアイテムを処理する) を返します。このバインドされたフィールドには、実際のフィールド インスタンスを格納するフィールド属性があります (必要な属性を格納します)。だからあなたはすることができます

{% if field.field.required %}
    $("input[name='{{ field.html_name }}']").addClass('required');
{% endif %}
于 2011-04-27T03:42:37.643 に答える
1

これをモデルに追加するだけです。これにより、クラスがフォームに追加'required'されます。

city_town.widget.attrs['class'] = 'required'
于 2011-04-27T03:49:37.090 に答える