我有一个表单,其中将列表中的项目相加,并且一旦添加到一起,如果值超过5000,则应取消隐藏具有白色背景的表单字段,以便该表单显示将要打印的警报。 (我不确定我是否可以有条件地仅显示纯文本-这就是我这样做的原因)。
这是我拼凑的JavaScript,试图隐藏该字段,并且可以正常工作-但由于此字段基于的字段是计算字段,因此除非他们在整个表单中都使用Tab键,否则没人会关注它效果不好)。无论用户如何关注,如何进行此计算?还是可以不考虑“属性”窗口而将焦点放在另一个字段上?
if (event.target.value > "4999.99") }
this.getField("ifOver5000").display = display.hidden;
)
else {
this.getField("ifOver5000".display = display.visible;
}
ifOver5000
是用于隐藏表单(通知)上的文本的字段。
[event.target.value
指将所有内容加在一起的计算字段(应在其上执行验证的字段)。
为了使它正常工作,您必须更改几点:
首先,似乎您正在尝试使用DOM对象的style
属性:
// from
this.getField("ifOver5000".display = display.visible;
// to
this.getField("ifOver5000").style.display = 'visible';
[其次,我不确定getField
方法返回的内容-似乎它来自第三方库。请确保检查它是否返回了DOM对象或阅读了该库的文档,因为它很有可能具有某些特定的解决方案。
这里是工作版本:
document.getElementById('inputTarget').addEventListener('keyup', function(event) {
if (parseFloat(event.target.value) > 4999.99) {
document.getElementById('ifOver5000').style.display = 'none';
} else {
document.getElementById('ifOver5000').style.display = 'block';
}
});
<input id="inputTarget" value="1900">
<p id="ifOver5000">This should hide if you enter more than 5000 or more</p>