在文本输入字段中设置示例答案

Setting an example answer in a text input field

我正在尝试在文本输入字段中设置一个默认值,为用户提供输入内容的示例。这应该是灰色的,并且应该在他们开始输入后立即消失。我已经尝试设置一个 initial 值,但是当用户开始输入时它不会自动替换并且格式与用户输入的答案相同。

form = VerbTestForm(initial={'answer': tip.tip})

我需要将什么传递到我的表单才能获得我正在寻找的行为?

设置小部件的 placeholder 属性:

form = VerbTestForm()
form.fields['answer'].widget.attrs['placeholder'] = tip.tip

您正在设置初始值,但您正在寻找占位符

你应该尝试这样的事情:

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

官方文档解释的很好,你应该看看:

小部件占位符就是您的答案:

 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()