如何隐藏隐藏字段的标签

1 投票
1 回答
2938 浏览
提问于 2025-04-16 14:41

我一直在尝试通过Django的API来隐藏模型类中定义的隐藏字段的标签。这个模型的增删改查操作都是由Django的后台管理来处理的。

我的模型是

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标签。

1 个回答

-1

你的问题是因为你使用了 {{ form.as_p }} 或其他类似的快捷方式来显示表单。自己手动渲染表单就不会遇到这个问题了。

另外,在Django 1.3中,有一种更简单的方法可以更改字段的控件,具体可以参考这个链接:http://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets

撰写回答