gpt4 book ai didi

phoenix-framework - Phoenix.HTML.Form date_select/3 可选日期

转载 作者:行者123 更新时间:2023-12-04 08:57:51 28 4
gpt4 key购买 nike

问题

我有一个表格,其中有一个申请日期字段。该值是可选的,因为它可以在以后提供(即它不一定在保存表单时存在)。

使用date_select/3,我无法找到一个简单的方法来让这个值成为可选的。即使 default: nil 作为选项提供,当前日期也会填写在字段中。这不是期望的行为,因为当用户保存表单时,值也会更新。

我想要什么

用于输入日期的字段,可以将其留空(这是默认行为)。

到目前为止我得到了什么

您可以使用构建器选项并使用空提示获取可选值的日期字段:

<%= date_select f, :applied_on, builder: fn b -> %>
Date: <%= b.(:day, [prompt: ""]) %>.<%= b.(:month, [prompt: ""]) %>.<%= b.(:year, [prompt: ""]) %>
<% end %>

难道没有更好、更优雅的方式来处理可选日期吗?

最佳答案

如果该字段是必需的或不应该由您的验证处理,则在模型部分由 ecto 默认。

来自 Phoenix.HTML.Form.datetime_select/3 :

:year, :month, :day, :hour, :minute, :second - options passed to the underlying select. See select/4 for more information. The available values can be given in :options.

来自 Phoenix.HTML.Form.select/4 :

:prompt - an option to include at the top of the options with the given prompt text

您只需将提示(或其他特定于选择的选项)设置为字段选项(:year, :month, :day, :hour, :minute and :second) of date_select.这应该有效:

<%= date_select f, :applied_on, year: [prompt: ""], month: [prompt: ""], day: [prompt: ""] %>

这将适用于 datetime_select/3 , date_select/3time_select/3 .

希望这对您有所帮助。

关于phoenix-framework - Phoenix.HTML.Form date_select/3 可选日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090739/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com