如何通过javascript在输入html中设置最小值?
情况描述: 我有两个输入,第一个表示开始时间,第二个表示结束时间 我想说的是: 因此,在结束时间字段(“id_结束”+i)中输入的时间不能少于在开始值字段(“id_开始”+i)中输入的时间 注意事项: 我警告您,您不能移动html代码。 我有比html代码中指定的更多的输入(超过20个),因此循环必须保持不变 代码html:如何通过javascript在输入html中设置最小值?,javascript,html,Javascript,Html,情况描述: 我有两个输入,第一个表示开始时间,第二个表示结束时间 我想说的是: 因此,在结束时间字段(“id_结束”+i)中输入的时间不能少于在开始值字段(“id_开始”+i)中输入的时间 注意事项: 我警告您,您不能移动html代码。 我有比html代码中指定的更多的输入(超过20个),因此循环必须保持不变 代码html: <td id="td01" class="InputsForUserColor1"> <input class="time_sea" type="time
<td id="td01" class="InputsForUserColor1">
<input class="time_sea" type="time" id="id_start_1" />
<input class="time_sea" type="time" id="id_start_2" />
</td>
<td id="td01" class="InputsForUserColor2">
<input class="time_sea" type="time" id="id_end_1" />
<input class="time_sea" type="time" id="id_end_2" />
</td>
我尝试过:侦听输入并开始更改
var elements_i = document.getElementsByClassName("InputsForUserColor1")
for (var i = 0; i < elements_i.length, i++) {
elements_i.addEventListener("change", function (e) {
document.getElementById("id_end_" + i).setAttribute.(..) = document.getElementById("id_start_" + i).value
});
}
var elements\u i=document.getElementsByClassName(“InputsForUserColor1”)
对于(var i=0;i
如果我走错了方向,请让我知道…因此您基本上需要遍历所有的
结束日期
字段,并将更改
事件附加到这些字段,以检查匹配的开始日期是否高于当前日期
请注意,elements\u i
是一个元素数组,如果希望在for循环中引用特定元素,则必须将其引用为elements\u i[i]
以下是一个开始:
var elements_i = document.getElementsByClassName("InputsForUserColor2")
for (var i = 0; i < elements_i.length, i++) {
elements_i[i].addEventListener("change", function (e) {
const currentID = elements_i[i].getAttribute('id');
const currentEndDate = new Date(elements_i[i].value);
const currentStartDate = new Date(document.getElementById(`id_start_${currentID}`).value);
if (currentStartDate > currentEndDate)
// then do something.....
});
}
var elements\u i=document.getElementsByClassName(“InputsForUserColor2”)
对于(var i=0;icurrentEndDate)
//那就做点什么。。。。。
});
}
使用document.queryselectoral(“.inputsforsercolor2>input”)
获取最终输入的节点列表
使用document.querySelectorAll(“.inputsforsercolor1>input”)
获取开始输入的节点列表。使用NodeList.forEach()
迭代节点列表,并为每个开始元素分配一个事件侦听器。使用事件处理程序中start元素的当前索引添加最小值
此外,如果未设置结束时间,或者如果结束时间小于开始时间,也可以根据开始时间更新结束时间
注释:
对于要分配的最小值。您需要完全感受开始输入
您还需要在末端设置一个最大值。如果结束将低于最小值,则它将循环回到最大值
const ends=document.queryselectoral(“.inputsforsercolor2>input”);
const getMin=timeStr=>{
常数[hour,min]=timeStr.split(“:”);
返回时间+小时*60++分钟;
};
document.querySelectorAll(“.inputsforsercolor1>input”)
.forEach((el,i)=>{
el.addEventListener('change',e=>{
常量值=e.target.value;
const end=ends[i];
end.setAttribute('min',值);
如果(!end.value | | getMin(end.value)
如果他们试图输入较低的值,您希望发生什么?值的格式是什么?这里-还有更多。通过搜索可以很容易地找到它们。除了在id_end_ux字段中设置最小值之外,如何添加在输入小于id_start_x的值后,从id_start_x到id_end_x的值被重写(无法实际输入此类值),我不确定是否理解您的意思。你能举个例子吗?id_start_1 |用户类型10:10>id_end_1用户类型9:30>id_end_1自动设置为10:10(必须满足条件)