如果需要字段,请设置html

时间:2013-07-09 14:28:24

标签: django-forms

在将此标记为重复之前,请阅读。

我知道如何使用表单中的小部件设置html required属性,而且如果需要该字段,我也知道如何检查模板。

<td title="{{field.help_text}}">
   {{field}}
   {% if field.field.required %}
    *
   {% endif %}
</td>

问题是我希望仅在填写必填字段时才提交表单,并且如果您知道如果将required =“required”设置为这些字段,html会负责处理。

有什么方法可以在我的通用模板中执行此操作,这样我就不必遍历每个表单并使用小部件为每个必填字段设置html属性了吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我解决了混合django和jquery的问题(​​据我所知,django代码首先被'解析'):

<script type="text/javascript">
    $(document).on("ready",function(){
        {% for field in form.visible_fields  %}
            {% if field.field.required %}
                var input = $("#id_{{field.name}}");
                input.attr("required","required");
            {% endif %}
        {% endfor %}
    });
 </script>

$("#id_{{field.name}}");有效,因为django表单始终(至少在1.5中)将id属性添加到输入格式为“id_fieldname”

如果您使用多种表单,获取输入的方式是:

var input = $("#id_{{form.prefix}}-{{field.name}}");

我希望这对某人有用。