在 XPage 上,当按下某个单选按钮时,如何清除某些字段?
这些字段位于面板上。该面板之外是一些单选按钮。在onChange
单选按钮中,我通过viewScope
变量更改面板的渲染属性并部分刷新面板以使其消失。这行得通。我只是希望也能够清空这些字段,否则在用户提交时会保存这些值!
在 XPage 上,当按下某个单选按钮时,如何清除某些字段?
这些字段位于面板上。该面板之外是一些单选按钮。在onChange
单选按钮中,我通过viewScope
变量更改面板的渲染属性并部分刷新面板以使其消失。这行得通。我只是希望也能够清空这些字段,否则在用户提交时会保存这些值!
SSJS 等价于modifyField
simple action 是setValue
文档数据源的方法;例如:
currentDocument.setValue("fieldName", null);
如果有人告诉你改为打电话getComponent("someId").setValue(null)
......不要。乍一看,这也是可行的,但效率较低、脆弱,并且当目标组件在重复控件中但事件组件在重复之外时不起作用。始终直接更新数据源...绑定到该数据源的任何组件都会自动获取您所做的任何更改。
添加一个事件,该事件将修改 onchange 事件上的字段并刷新您要更改的区域。
<xp:modifyField
var="document1"
name="FIELDNAME"
value="">
</xp:modifyField>
使用客户端 onChange 运行这些 dojo 中的任何一个,其中 < parentID > 是 RadioButton 或 RadioGroup 所在容器的 id:
dojo.query("*[type=radio]:checked",dojo.byId(parentID)).forEach(function(node, index, nodelist){
node.checked=false;
});
dojo.query("*[type=checkbox]:checked",dojo.byId(parentID)).forEach(function(node, index, nodelist){
node.checked=false;
});
dojo.query("input",parentID).
forEach(function(node, index, nodelist){
node.value = "";
})
//reset(