如何隐藏隐藏字段的标签
我一直在尝试通过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