gpt4 book ai didi

javascript - 自动检查日期复选框

转载 作者:行者123 更新时间:2023-11-30 20:01:33 26 4
gpt4 key购买 nike

我有 3 个复选框和 2 个输入。第二个复选框是 parent()的 1 input type number第三个复选框是parent()的 2 input type number :

$calendar .= "<td bgcolor='$color' data-semana=''><font size='2px'/> 
<input type='checkbox' name='arrachar[$year, $month, $day][dia]' value='$year-$month-$day' $marcado_data $disabled> <strong style='color:#5ca2df'>$year-$month-$day</strong> <br />
<div style='width:60%;position:relative;float:left'><input type='checkbox' name='arrachar[$year, $month, $day][OpcaoA]' value='Peq_Almoço' $marcado_pequeno $disabled> <strong style='color: #000000'>Peq. Almoço</strong></div> <div style='width:40%;position:relative;float:left'><input $disabled min='0' oninput='this.value = Math.abs(this.value)' type='number' name='arrachar[$year, $month, $day][Qtd]' value='$marcado_pequeno_qtd' style='width:65px; height: 22px' /> <br /> </div>
<div style='width:60%;position:relative;float:left'><input type='checkbox' name='arrachar[$year, $month, $day][opcaoB]' value='Almoço' $marcado_almoco $disabled> <strong style='color: #000000'>Almoço</strong></div> <div style='width:40%;position:relative;float:left'><input $disabled min='0' oninput='this.value = Math.abs(this.value)' type='number' name='arrachar[$year, $month, $day][Qtd1]' value='$marcado_almoco_qtd' style='width:65px; height: 22px' /> <br /> </div></font></center></td>";}

自动标记2和3 checkbox通过在 input type number 中输入一个大于零的值我有 estre 脚本:

<script> 
var inputs_ = document.querySelectorAll("[type='number'][name^='arrachar']");
for(var x=0; x<inputs_.length; x++){

inputs_[x].addEventListener("input", function(){

var box = this.parentNode.previousElementSibling.querySelector("[type='checkbox']");
box.checked = this.value > 0 ? true : false;

});

}
</script>

填写1或2时input type number , 除了自动标记 checkbox parent()其中,我还想自动检查第一个 checkbox的日期。是否可以调整我的 script做这个?

解决方案是通过更改脚本:

<script> 
var inputs_ = [...document.querySelectorAll("[type='number'][name^='arrachar']")];
for(var x=0; x<inputs_.length; x++){
inputs_[x].addEventListener("input", function(){
var box = this.parentNode.previousElementSibling.querySelector("[type='checkbox']");

box.checked = !getValuesLessorEqualZero([this]);

var firstBox = document.getElementById('firstCB');
firstBox.checked = this.value > 0 ? true : false;

var valueAllLessOrZero = getValuesLessorEqualZero(inputs_);
if(valueAllLessOrZero) firstBox.checked = false;
});
}

const getValuesLessorEqualZero = (inputs) => {
var lengthInputs = inputs.length;
var valueLessOrZero = true;

for(let i = 0; i < lengthInputs && valueLessOrZero; i++) {
valueLessOrZero = inputs[i].value <= 0 ? true : false;
}

return valueLessOrZero;
};
</script>

但是有一个问题,当我在输入中输入一个大于零的值时,它会根据我正在填写的输入自动标记第一天的复选框而不是日期。例如,我在2018-11-18日的输入中输入了值,并选中了2018-11-01日的复选框。图片问题示例: Imagem

我该如何解决这个问题?

最佳答案

首先在第一行你写了 double equal:

$marcado_pequeno =$marcado_almoco =$marcado_pequeno_qtd =$marcado_almoco_qtd=''; 

其次,这还不是很清楚,所以只要记住您需要将输入放在表单标签中,并使用“get”或“request”或“post”全局变量获取信息。

最后,关于你的问题。

while ((the input) == 1){
<script>
document.getElementById("checkbox id").checked = true
</script>
}

关于javascript - 自动检查日期复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53315537/

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