如何在同一输入中 select 多个日期?
How can I select multiple dates in the same input?
我需要管理 'courses' 可用的日期。
我有一个简单的输入数据如下:
<input type="date" name="data" id="data">
如何 select 在同一个输入中同时输入多个日期。
我可以指定开始日期和结束日期,但我想要更具体的信息。
提前致谢。
可能最好使用在保存之前将日期保存到数组的按钮...也许是这样的?
document.querySelector("button").addEventListener("click", function() {
const sel = document.querySelector("select");
const d = document.querySelector("#date").value;
if (d === null || d === undefined)
{
alert("Select a date first.");
}
else
{
sel.innerHTML += `<option value="${d}">${d}</option>`;
}
});
// Later on, post the option values from the select list to your backend:
document.querySelector("#finish").addEventListener("click", function() {
var dates = [];
for (let o of document.querySelectorAll("#dates option"))
{
dates.push(o.value);
}
});
<div>
<p>Select dates</p>
<input type="date" id="date" />
<button>Add Date</button>
</div>
<div style="padding-top:20px;">
<select name="dates" id="dates" size="5">
</select>
</div>
<button id="finish">Finish</button>
我已经包含了如何从 select 列表选项中获取项目的代码,但是您必须从那里以您喜欢的任何方式处理数据。
不完全清楚您使用 'more specificity than with a start and end date' 描述或引用的数据类型。
如果您只是想提交一定数量的特定 days/dates,那么您可以使用数组。
Date 1. <input type="date" name="data[]"><br>
Date 2. <input type="date" name="data[]"><br>
Date 3. <input type="date" name="data[]"><br>
Date 4. <input type="date" name="data[]"><br>
或者如果您想要多个日期范围,
Dates 1. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
Dates 2. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
Dates 3. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
无论哪种情况,服务器都会收到一个字符串条目数组,而不是单个字符串。
请注意,您的 id="data"
在所有示例中都已删除,因为它不再是唯一的。你会想使用 class 来代替。
我需要管理 'courses' 可用的日期。 我有一个简单的输入数据如下:
<input type="date" name="data" id="data">
如何 select 在同一个输入中同时输入多个日期。
我可以指定开始日期和结束日期,但我想要更具体的信息。 提前致谢。
可能最好使用在保存之前将日期保存到数组的按钮...也许是这样的?
document.querySelector("button").addEventListener("click", function() {
const sel = document.querySelector("select");
const d = document.querySelector("#date").value;
if (d === null || d === undefined)
{
alert("Select a date first.");
}
else
{
sel.innerHTML += `<option value="${d}">${d}</option>`;
}
});
// Later on, post the option values from the select list to your backend:
document.querySelector("#finish").addEventListener("click", function() {
var dates = [];
for (let o of document.querySelectorAll("#dates option"))
{
dates.push(o.value);
}
});
<div>
<p>Select dates</p>
<input type="date" id="date" />
<button>Add Date</button>
</div>
<div style="padding-top:20px;">
<select name="dates" id="dates" size="5">
</select>
</div>
<button id="finish">Finish</button>
我已经包含了如何从 select 列表选项中获取项目的代码,但是您必须从那里以您喜欢的任何方式处理数据。
不完全清楚您使用 'more specificity than with a start and end date' 描述或引用的数据类型。
如果您只是想提交一定数量的特定 days/dates,那么您可以使用数组。
Date 1. <input type="date" name="data[]"><br>
Date 2. <input type="date" name="data[]"><br>
Date 3. <input type="date" name="data[]"><br>
Date 4. <input type="date" name="data[]"><br>
或者如果您想要多个日期范围,
Dates 1. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
Dates 2. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
Dates 3. <input type="date" name="data_range_from[]"> to <input type="date" name="data_range_to[]"><br>
无论哪种情况,服务器都会收到一个字符串条目数组,而不是单个字符串。
请注意,您的 id="data"
在所有示例中都已删除,因为它不再是唯一的。你会想使用 class 来代替。