HTML表单不会在桌面上显示日期值,而是在移动设备上

问题描述 投票:-1回答:1

我正在创建一个表单。我创建了一个移动模块,可以在移动设备上呈现,也可以创建一个在桌面上呈现的桌面模块。这个表单中有几个字段,除了日期字段外,它还可以正常工作,我希望有人在日期中输入。在移动块上,日期字段完全取值。在桌面块上,它没有任何值。我在渲染桌面版时最终收到此错误:

ValueError: time data '' does not match format '%Y-%m-%d'

HTML看起来像这样(为了简单起见,我已经删除了表单中的大部分字段,如果您需要查看更多HTML,请告诉我):

<form method="POST">
<div class="mobile-only">
   <div class="form-group row">
      <div class="col-12 col-md-2 col-lg-4">
         <label for="start-date" class="col-form-label">
            <h4>Start Date: <sup class="required">(required)</sup></h4>
         </label>
      </div>
      <div class="col-12 col-md-10 col-lg-4">
         <input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY">
      </div>
   </div>
   <div class="row">
      <div class="col-3 col-md-1">
         <button class="green-button link-text" type="submit" id="submit" type="submit">Save</button>
      </div>
      <div class="col-3 col-md-1">
         <button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button>
      </div>
   </div>
</div>

上面的代码在移动设备上工作正常,下面是在桌面上呈现的内容,并给出了上面引用的错误:

 <div class="desktop-only">
   <div class="form-group row">
      <div class="col-lg-1">
         <label for="start-date" class="col-form-label">
            <h4>Start Date: <sup class="required">(required)</sup></h4>
         </label>
      </div>
      <div class="col-lg-3">
         <input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY">
      </div>
   </div>
   <div class="row">
      <div class="col-3 col-md-1">
         <button class="green-button link-text" type="submit" id="submit" type="submit">Save</button>
      </div>
      <div class="col-3 col-md-1">
         <button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button>
      </div>
   </div>
</div>
</form>

另外,如果它是相关的,我使用的是Bootstrap 4,后端是带有Python的Flask应用程序。知道问题是什么吗?

python html forms mobile flask
1个回答
0
投票

占位符向用户显示以下格式:

placeholder="MM/DD/YYYY"

但是在你期望的代码中的其他地方:

format '%Y-%m-%d'

这是你的错误,如果你试图上传到数据库,你应该使用YYYY-MM-DD,因为这是国际标准,然后在你的前端转换为MM / DD / YYYY。如果您要求输入MM / DD / YYYY,则需要将其转换为YYYY-DD-MM

© www.soinside.com 2019 - 2024. All rights reserved.