【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-18
        • 1970-01-01
        相关资源
        最近更新 更多