【发布时间】:2020-12-19 04:53:02
【问题描述】:
我有一个form_for 表格。我的一些字段用于选择日期,我使用flatpickr 进行。我无法在客户端使用表单验证来设置所需的字段。
我在application.js 中有以下基本的 flatpickr 代码:
flatpickr("[data-behavior='flatpickr']", {
altInput: true,
altFormat: "F j, Y",
dateFormat: "Y-m-d"
});
在我看来,我尝试过制作这样的字段(有很多变体):
<%= f.text_field :attribute_name,
{ label: "Description of attribute", data: { behavior: "flatpickr" }, required: true } %>
生成此 HTML:
<label class="required" for="model_name_attribute_name">Description of attribute</label>
<input data-behavior="flatpickr" required="required" class="form-control flatpickr-input" type="hidden" name="model_name[attribute_name]" id="model_name_attribute_name">
<input class="form-control form-control input" placeholder="" required="" tabindex="0" type="text" readonly="readonly">
一切正常,除了我不知道如何使该字段成为必填项。 Flatpickr 创建一个隐藏字段,其中包含在其 javascript 弹出窗口中选择的实际日期值,然后它使用您喜欢的任何格式在可见字段中显示它,即 readonly,因为它是由 flatpickr 设置的。似乎我尝试使字段“必需”使标签具有“必需”类并使隐藏字段“必需”,同时将可见字段留给required='',这不足以在没有任何内容时停止提交被选中并且该字段为空。我有一个服务器端验证正在捕获它,但我想找到一种方法让客户端验证也能工作。
【问题讨论】:
-
当您说“客户端验证”时,您究竟是什么意思?如果它是空的,您可以编写一个小脚本来停止提交。你需要那个 required 属性吗?
-
“客户端验证”是指标准的 HTML 表单验证,在这种情况下具有 required 属性。如果该字段为空,我可以使用 javascript 来停止提交,但我想使用 required 属性来保持与表单中也使用 required 属性的其余字段的行为一致性。
-
这能回答你的问题吗? Make flatpickr input required
标签: javascript html ruby-on-rails forms flatpickr