【问题标题】:Setting an example answer in a text input field在文本输入字段中设置示例答案
【发布时间】:2015-07-13 14:05:45
【问题描述】:
我正在尝试在文本输入字段中设置默认值,以向用户提供输入内容的示例。这应该是灰色的,并且应该在他们开始输入后立即消失。我尝试设置一个initial 值,但是当用户开始键入时它不会自动替换,并且格式与用户输入的答案相同。
form = VerbTestForm(initial={'answer': tip.tip})
我需要将什么传递给我的表单才能获得我正在寻找的行为?
【问题讨论】:
标签:
python
django
django-forms
【解决方案1】:
小部件占位符就是你的答案:
class VerbTestForm(forms.Form):
answer = forms.CharField(widget=forms.TextInput(attrs={'placeholder': tip.tip}))
您可以通过调用 as_p 或 as_table 方法快速测试生成的 HTML
>>> f = VerbTestForm(auto_id=False)
>>> f.as_table()
【解决方案2】:
您正在设置一个初始值,但您正在寻找一个占位符。
你应该试试这样的:
class VerbTestForm(forms.ModelForm):
# Your code ...
class Meta:
# Your code ...
widgets = {
'answer': forms.TextInput(attrs={'placeholder': tip.tip}),
}
或者您可以在定义表单后添加占位符:
form = VerbTestForm()
form.fields['answer'].widget.attrs['placeholder'] = tip.tip
官方文档解释的很好,你应该检查一下:
【解决方案3】:
设置小部件的placeholder 属性:
form = VerbTestForm()
form.fields['answer'].widget.attrs['placeholder'] = tip.tip