Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过javascript在输入html中设置最小值?_Javascript_Html - Fatal编程技术网

如何通过javascript在输入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

情况描述: 我有两个输入,第一个表示开始时间,第二个表示结束时间

我想说的是: 因此,在结束时间字段(“id_结束”+i)中输入的时间不能少于在开始值字段(“id_开始”+i)中输入的时间

注意事项: 我警告您,您不能移动html代码。 我有比html代码中指定的更多的输入(超过20个),因此循环必须保持不变

代码html:

<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(必须满足条件)