XPage で、特定のラジオボタンが押されたときに一部のフィールドをクリアするにはどうすればよいですか?
フィールドはパネル上にあります。そのパネルの外側には、いくつかのラジオ ボタンがあります。ラジオ ボタンのonChange
中で、変数を使用してパネルのレンダリング プロパティを変更し、パネルをviewScope
部分的に更新して非表示にします。これは機能します。フィールドも空白にできるようにしたいだけです。そうしないと、ユーザーが送信したときに値が保存されます。
XPage で、特定のラジオボタンが押されたときに一部のフィールドをクリアするにはどうすればよいですか?
フィールドはパネル上にあります。そのパネルの外側には、いくつかのラジオ ボタンがあります。ラジオ ボタンのonChange
中で、変数を使用してパネルのレンダリング プロパティを変更し、パネルをviewScope
部分的に更新して非表示にします。これは機能します。フィールドも空白にできるようにしたいだけです。そうしないと、ユーザーが送信したときに値が保存されます。
modifyField
シンプル アクションに相当する SSJSsetValue
は、ドキュメント データ ソースのメソッドです。例えば:
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(