【发布时间】:2015-05-04 08:50:26
【问题描述】:
假设我有两个隐藏的表单字段输入:
<input id="val1" name="val1" value="0"/>
<input id="val2" name="val2" value="0"/>
假设我有一个警告 DIV,如果这两个输入的值都为“1”,我想显示一条消息
<div id="myWarningDiv" style="display: none;" class="clswhatever">
You have done something wrong comrade!
</div>
现在假设有很多方法可以触发更改这些隐藏字段值中的一个或两个。我不想做的是更改每个触发器上的代码以检查这两个值是否都是“1”。有没有办法我可以添加一个自定义事件来监听这件事的发生,而不使用 setInterval 或类似的东西?
这是一个简单的例子。我真正要寻找的不是将事件附加到单个 DOM 元素的方法,而是创建可能跨越多个 DOM 对象的自定义条件,但在触发时会调用事件处理函数。下面是一些伪代码:
public Boolean onBothTrue() {
if (document.getElementById("val1").value == "1" && document.getElementById("val2").value == "1") {
return true;
}
else {
return false;
}
}
document.addEventListener('onBothTrue',myEventHandler);
function myEventHandler() {
var elem = document.getElementById("myWarningDiv");
elem.style.display = "block";
}
【问题讨论】:
-
你能展示你这样做的尝试吗?
-
虽然我在 javascript 方面有不错的经验,但我在自定义事件方面没有很多经验,所以我不知道从哪里开始。
-
大家好!感谢您的输入。我现在在想我想使用 CustomEvent 并将其附加到表单中。还认为应该在表单更改而不是 Window.SetInterval 时调度它。认为我可以随时使用 setter 函数,代码会更新值 abd 也会触发自定义事件。这个解决方案对每个人都有一点影响。这听起来对吗?如果是这样,有人可以发布一个全面的答案,以便我知道将赏金奖励给谁吗?我不知道如何分配赏金。
-
我添加了另一个应该可以解决问题的示例。
标签: javascript jquery html