Xpages 是否清除Xpage上的字段?

Xpages 是否清除Xpage上的字段?,xpages,Xpages,在XPage上,当按下某个单选按钮时,如何清除某些字段 字段位于面板上。面板外面有一些单选按钮。在单选按钮的onChange中,我通过viewScope变量和面板的部分刷新来更改面板的render属性,使其消失。这很有效。我只想能够同时清空字段,否则在用户提交时会保存值 添加一个事件,该事件将修改onchange事件上的字段并刷新要更改的区域 <xp:modifyField var="document1" name="FIELDNAME" value=""> </x

在XPage上,当按下某个单选按钮时,如何清除某些字段


字段位于面板上。面板外面有一些单选按钮。在单选按钮的onChange中,我通过viewScope变量和面板的部分刷新来更改面板的render属性,使其消失。这很有效。我只想能够同时清空字段,否则在用户提交时会保存值

添加一个事件,该事件将修改onchange事件上的字段并刷新要更改的区域

<xp:modifyField    
var="document1" 
name="FIELDNAME" 
value="">
</xp:modifyField>

添加一个事件,该事件将修改onchange事件上的字段并刷新要更改的区域

<xp:modifyField    
var="document1" 
name="FIELDNAME" 
value="">
</xp:modifyField>

modifyField简单操作的SSJS等价物是文档数据源的setValue方法;例如:

currentDocument.setValuefieldName,空


如果有人告诉您改为调用getComponentsomeId.setValuenull。。。不要。乍一看,这也行得通,但效率较低、脆弱,而且当目标组件位于repeat控件中而事件组件位于repeat控件之外时,它就不起作用了。始终直接更新数据源。。。绑定到该数据源的任何组件都将自动拾取您所做的任何更改。

与modifyField简单操作等效的SSJS是文档数据源的setValue方法;例如:

currentDocument.setValuefieldName,空


如果有人告诉您改为调用getComponentsomeId.setValuenull。。。不要。乍一看,这也行得通,但效率较低、脆弱,而且当目标组件位于repeat控件中而事件组件位于repeat控件之外时,它就不起作用了。始终直接更新数据源。。。绑定到该数据源的任何组件将自动拾取您所做的任何更改。

使用客户端onChange运行这些dojo中的任何一个,其中是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(

使用客户端onChange运行这些dojo中的任何一个,其中是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(

但如果您想阻止用户在某些字段中保存数据,最好使用IMHO,禁用或使这些字段为只读。因此,在readonly属性中计算类似的内容@ContainsgetComponentCOMPONENTID.getValue,VALUE,然后在部分刷新时可以刷新该区域,它将使该字段为只读。我认为从用户的角度来看,这种方法更好。我有一个工作流应用程序,可以根据文档的状态将某些区域的所有内容都设置为只读。类似的方法。不要问组件,问数据。嘿,每个勇敢的人都需要一个傻瓜。是的,我读过帖子,听说这是个糟糕的方法。我需要更正我的一些应用程序。。。我们在这里叫他们投票吗?有一个…在我们的辩护中,IBM的所有教程都使用getComponentid.getValue模式,所以我们中的一些人在过去几个月才意识到有更好的方法。但是如果你想阻止用户在某些字段中保存数据,最好禁用或使这些字段为只读。因此,在readonly属性中计算类似的内容@ContainsgetComponentCOMPONENTID.getValue,VALUE,然后在部分刷新时可以刷新该区域,它将使该字段为只读。我认为从用户的角度来看,这种方法更好。我有一个工作流应用程序,可以根据文档的状态将某些区域的所有内容都设置为只读。类似的方法。不要问组件,问数据。嘿,每个勇敢的人都需要一个傻瓜。是的,我读过帖子,听说这是个糟糕的方法。我需要更正我的一些应用程序。。。我们在这里叫他们投票吗?有一个……在我们的辩护中,IBM的所有教程都使用getComponentid.getValue模式,所以直到最近几个月,我们中的一些人才意识到有更好的方法。如果您不想保存值,就不要将它们绑定到字段。对吗?如果不想保存这些值,就不要将它们绑定到字段。正当