Django名称=''的无效表单控件不可聚焦

时间:2019-04-27 14:36:09

标签: html django django-forms django-crispy-forms

我创建了一个Django表单,该表单在其中一个字段中具有下拉菜单。当我尝试提交表单而不选择下拉菜单项时,该表单未提交,因为我在代码中设置了除非使用is_valid()有效的表单,否则表单不会提交。 但是,它没有显示验证错误消息。在浏览器控制台中,是错误消息An invalid form control with name='start_position' is not focusable.

我已经阅读了一些有关此的问题,他们说这是因为存在一个隐藏字段而发生的。检查元素后,确实是div class ='start_position'被隐藏了。 但是,我不知道如何在Django中修复它。

这是创建下拉字段的代码。

class LocationForm(forms.Form):
    start_position = forms.ModelChoiceField(
        required=True,
        label="Start Position",
        queryset=Location.objects.all()
    )

这是呈现的HTML

<div class="formColumn form-group col-md-6 mb-0">
  <div id="div_id_start_position" class="form-group">
    <label for="id_start_position" class="col-form-label  requiredField">
      Start Position<span class="asteriskField">*</span>
    </label> <div class="">
    <select name="start_position" class="select form-control" required="" id="id_start_position" style="display: none;">
      <option value="" selected="">---------</option>
      <option value="78">Loc 78</option>
      <option value="79">Loc 79</option>
      <option value="80">Loc 80</option>
    </select><div class="nice-select select form-control" tabindex="0"> 
    <span class="current">Loc 78</span>
    <ul class="list">
      <li data-value="" class="option">---------</li>
      <li data-value="78" class="option selected">Loc 78</li>
      <li data-value="79" class="option">Loc 79</li>
      <li data-value="80" class="option">Loc 80</li>
    </ul></div>
  </div>
</div>

我希望验证消息像在其他字段中一样显示(我尝试过DateField,验证工作正常)。

0 个答案:

没有答案