如何基于没有焦点的其他字段值有条件地隐藏一个字段?

问题描述 投票:0回答:1

我有一个表单,其中将列表中的项目相加,并且一旦添加到一起,如果值超过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指将所有内容加在一起的计算字段(应在其上执行验证的字段)。

javascript acrobat
1个回答
0
投票

为了使它正常工作,您必须更改几点:

首先,似乎您正在尝试使用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>
© www.soinside.com 2019 - 2024. All rights reserved.