【问题标题】:How to hide the label for the hidden field如何隐藏隐藏字段的标签
【发布时间】:2011-07-25 18:11:33
【问题描述】:

我一直在尝试使用 Django api 隐藏模型类中定义的隐藏字段的标签。模型的 CRUD 操作由 Django admin 管理。

我的模特是

class RackForm(django.forms.ModelForm):

  def __init__(self, *args, **kwargs):
     self.fields['racktypeid'].widget = \
         forms.HiddenInput(attrs={'styles': 'display:none;'})
     ..... other initialization

下面给出生成的html源码

<div class="form-row racktypeid">


            <div>

                    **<label for="id_racktypeid" class="required">Rack Type:</label>**

                        **<input styles="display:none;" name="racktypeid" value="3" onchange="changeRackType(this);" type="hidden" id="id_racktypeid" />**




                    <p class="help">The physical type of rack as defined in the rack type list</p>

            </div>

    </div>

该字段已隐藏,但未隐藏关联的标签。我什至尝试过使用 jQuery。我可能对语法有误。如果我是,如果我错了,请纠正我。

$(document).ready(function() {
    // Hide label for RackForm rack type id label.
   $('#id_racktypeid, label[for="#id_racktypeid"]').hide()
    $('#id_racktypeid, label[for="#id_racktypeid"]').parent().hide()
  });
});

没有一个选项成功。我需要做些什么来隐藏隐藏字段的标签吗?

更新:最终我选择隐藏整个 div 标签。

【问题讨论】:

  • 标签[for="..."] 选择器中不要包含#。
  • 是的,# 太多了。此外,这可以使用纯 css 完成: label[for="racktypeid"]{display:none;}
  • @arie:我需要为此创建一个 css 文件吗?对不起,我不明白..
  • 要么将其放入包含在模板中的 css 文件中,要么将其直接添加到页面头部的样式标签中。在这两种情况下,最好的方法可能是在您的基本模板中创建一个 extra_head-block,您可以在您的实际模板中简单地覆盖/继承(参见:ericholscher.com/projects/django-conventions/app)。
  • 查看此模板以了解我的意思:bit.ly/fQaix1

标签: javascript python django django-admin


【解决方案1】:

您的问题源于使用{{ form.as_p }} 或其他一些快捷功能来呈现您的表单。自己渲染表单就不会出现这个问题了。

此外,在 Django 1.3 中,有一种更简单的方法可以更改字段的小部件,请参阅 http://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多