问题描述
我正在交互式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>