<分区>
编辑问题以包含 desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem .这将有助于其他人回答问题。
关闭 3 年前。
标签 javascript html css
<分区>
编辑问题以包含 desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem .这将有助于其他人回答问题。
关闭 3 年前。
事情是这样的。我有一个输入值必须与另一个输入值相等。虽然,第二个输入与另一个输入的 onchange
事件相关。例如:
输入 1:计算 2+2、4+4 或任何其他数字
输入 2:在输入 1 发生变化时,获取其值
输入 3:在输入 2 发生变化时,获取其值
事实是,当输入 2 的值因输入 1 而改变时,输入 3 不会改变,除非我手动更改输入 2。
谁能帮我看看这是怎么回事?
我还没有实际尝试过,因为我不知道解决这个问题的任何其他方法。
function f_mezanino() {
if (document.getElementById('mezanino').checked) {
document.getElementById("s_alt_max_fac").value = "14";
document.getElementById("s_alt_max_fac").max = "14";
document.getElementById("s_alt_max_cum").value = "18";
document.getElementById("s_alt_max_cum").max = "18";
} else {
document.getElementById("s_alt_max_fac").value = "11";
document.getElementById("s_alt_max_fac").max = "11";
document.getElementById("s_alt_max_cum").value = "15";
document.getElementById("s_alt_max_cum").max = "15";
}
}
function f_legislacao() {
var alt_max_fac = document.getElementById("s_alt_max_fac").max;
document.getElementById("s_alt_max_fac_read").value = alt_max_fac;
}
<input id="mezanino" type="checkbox" name="s_mezanino" onclick="f_mezanino();"> Utilizar mezanino<br>
<input id="s_alt_max_fac" name="s_alt_max_fac" type="number" value="11" step="0.01" min="0" max="11" onchange="f_legislacao();">
<input id="s_alt_max_fac_leg" name="s_alt_max_fac_leg" type="text" value="11" readonly>
最佳答案
根据你提供的codepen,可以使用EventTarget.dispatchEvent()要手动触发 DOM 事件,请记得检查兼容性。
function f_mezanino() {
if (document.getElementById('mezanino').checked) {
document.getElementById("s_alt_max_fac").value = "14";
document.getElementById("s_alt_max_fac").max = "14";
} else {
document.getElementById("s_alt_max_fac").value = "11";
document.getElementById("s_alt_max_fac").max = "11";
}
//Dispatch change event here
var element = document.getElementById("s_alt_max_fac");
var event = new Event('change');
element.dispatchEvent(event);
}
function f_legislacao() {
//make s_alt_max_fac_leg change with s_alt_max_fac's the value
var alt_max_fac_value = document.getElementById("s_alt_max_fac").value;
document.getElementById("s_alt_max_fac_leg").value = alt_max_fac_value;
}
如果您能够使用 jQuery,那么执行此操作的方法会更短
$("#s_alt_max_fac").trigger("change");
关于javascript - 如何强制输入值根据第三个输入的变化而变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517939/
相关文章:
javascript - 在运行任何其他 JavaScript 之前在 UIWebView 中运行 JavaScript
javascript - 在 JavaScript 中处理大型(12K+ 行)数组
php - 如何使用 php 定位 mysql 查询表结果中的特定单元格
javascript - 带 Glyphicon 的按钮比带文本的按钮小
javascript - DHTML 下拉菜单在 IE7 中不起作用
Javascript console.log(object) 与连接字符串