1

XPage で、特定のラジオボタンが押されたときに一部のフィールドをクリアするにはどうすればよいですか?

フィールドはパネル上にあります。そのパネルの外側には、いくつかのラジオ ボタンがあります。ラジオ ボタンのonChange中で、変数を使用してパネルのレンダリング プロパティを変更し、パネルをviewScope部分的に更新して非表示にします。これは機能します。フィールドも空白にできるようにしたいだけです。そうしないと、ユーザーが送信したときに値が保存されます。

4

3 に答える 3

11

modifyFieldシンプル アクションに相当する SSJSsetValueは、ドキュメント データ ソースのメソッドです。例えば:

currentDocument.setValue("fieldName", null);

代わりに電話するように誰かに言われたらgetComponent("someId").setValue(null)...しないでください。一見、これも機能しますが、ターゲット コンポーネントが繰り返しコントロール内にあり、イベント コンポーネントが繰り返しコントロールの外にある場合は、効率が悪く、壊れやすく、機能しません。常にデータ ソースを直接更新します。そのデータ ソースにバインドされているコンポーネントは、行った変更を自動的に取得します。

于 2013-05-23T00:20:29.400 に答える
1

onchange イベントでフィールドを変更し、変更する領域を更新するイベントを追加します。

<xp:modifyField    
var="document1" 
name="FIELDNAME" 
value="">
</xp:modifyField>
于 2013-05-23T00:07:38.423 に答える
0

クライアント側の 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(
于 2014-05-07T20:49:50.383 に答える