JavaScript来控制交互式PDF文件中的复选框选择

问题描述

我正在交互式PDF中创建一系列复选框,并且我添加了Javascript操作,以在选中一个选项后清除所有其他选项。复选框1单击后,将清除复选框2到4。

我了解这实际上是一个单选按钮,但是出于PDF的目的,用户需要能够取消选择一个选项,并且能够清除所有选项而无需添加“全部清除”按钮。

我要添加的Javascript是: this.resetForm([[“ name”,“ name1”,“ name2”,“ name3”,“ name4”]);

我想知道是否可以添加其他代码,以便表单忽略自身的重置操作?

有了这个,我可以立即将Javascript应用于所有复选框,而不必将Java重置表单添加到每个复选框中。

很抱歉,如果这个问题真的很简单,我几乎没有Java经验。

预先感谢, 马蒂

解决方法

您无需使用复选框即可实现所需的行为。实际上,您可以创建单选按钮,这些单选按钮在单击所选项目时会关闭。正常创建单选按钮,然后将以下脚本添加到“鼠标向上”操作...

if (previousValue == event.target.value) {
    this.resetForm(event.target.name);
}

以及以下代码用于“鼠标按下”操作...

var previousValue = event.target.value;

您可以看到一个有效的示例here.

,

要取消选中单个复选框,

  • document.getElementById(“ checkboxId”)。checked = false; (JS)

  • $('#checkboxId')。prop('checked',false); (JQuery 1.6 +)

似乎它的行为应类似于单选按钮。因此,您可以将所选复选框的ID传递给method,仅对其进行检查。

function invokeClear(item){
   var inputList = document.getElementsByTagName('input');
   
   for (var i = 0; i < inputList.length; i++) {
       if (inputList[i].type == 'checkbox' && inputList[i].id != item ) {
           inputList[i].checked = false;
       }
   }
}
<html>
  <body>
    <input type="checkbox" id="cb1" class="cb-element" onclick="invokeClear(this.id)"/> Checkbox  1<br>
    <input type="checkbox" id="cb2" class="cb-element" onclick="invokeClear(this.id)"/> Checkbox  2<br>
    <input type="checkbox" id="cb3" class="cb-element" onclick="invokeClear(this.id)"/> Checkbox  3
  </body>
</html>