3

フォームのErrorMessageコントロールを使用して、ボックスの編集などを検証しています。よく働く。データ入力が必要になると、小さな灰色のアラートタイプボックスがポップアップ表示されます。

ラジオボタンやコンボボックスなどで同じことができる例を誰かに教えてもらえますか?または、通常のボタン(フォームにドキュメントの追加ボタンがあるとします)。

メッセージが実際にどのように表示されるかは本当に気にしません。すべてのコンポーネントの検証全体で検証の一貫性を保ちたいと思います。言い換えれば、サーバー側とクライアント側の検証は必要ありません。

そこに例はありますか?私はextlibダイアログボックスを使用して独自の検証を使用してきましたが、これはうまく機能しましたが、より簡単に実装できるものを望んでいました。

4

4 に答える 4

5

私は検証にこのXSnippetの拡張バージョンを使用しています。これにより、中央のSSJSライブラリですべての検証を管理し、[エラーの表示]コントロールですべてのエラーを表示することができます。

中央のSSJSライブラリでは、ラジオボタン、コンボボックスなどのコントロールを検証し、検証を組み合わせることができます(たとえば、別のコントロールに特定の値がある場合に、あるコントロールの値を確認するため)。

ラジオボタングループ(radioField)の値が1の場合に、特定のフィールド(FieldA)が入力されているかどうかを検証する、前述のXSnippetに基づく例を次に示します。

var radioVal = getComponent("radioField").value;
var control = getComponent("FieldA");
var val = control.getValue();
if (radioVal == "1" && isEmpty(val)){
  valid = false;
  postValidationError(control, "Please fill in ...");
}
于 2013-02-06T07:55:30.447 に答える
3

ErrorMessageコントロールとは、「エラーの表示」コントロールを意味することを願っています。「データ」内のすべてのプロパティのコンボボックスには、「バリデーター」があります。ここでは、編集ボックスの場合と同じように検証を追加できます。コンボボックスには、通常、を使用しますvalidateExpression。次に、「エラーの表示」コントロールを使用してエラーを表示します。

<xp:comboBox id="comboBox1">
    <xp:this.validators>
        <xp:validateExpression message="Please select value in combo box.">
            <xp:this.expression><![CDATA[#{javascript:!getComponent("comboBox1").getSubmittedValue().equalsIgnoreCase("Select")}]]></xp:this.expression>
        </xp:validateExpression>
    </xp:this.validators>
    <xp:selectItem itemLabel="Select" itemValue="Select"></xp:selectItem>
    <xp:selectItem itemLabel="1" itemValue="1"></xp:selectItem>
    <xp:selectItem itemLabel="2" itemValue="2"></xp:selectItem>
    <xp:selectItem itemLabel="3" itemValue="3"></xp:selectItem>
</xp:comboBox>
<xp:message id="message1" for="comboBox1"></xp:message>

上記の例では、ユーザーがコンボボックスでアイテムを選択しなかった場合、エラーメッセージがユーザーに表示されます。これはサーバー側の検証であることに注意してください。他のコントロールでは試していませんが、同じように機能するはずです。

あなたの質問を正しく理解したかどうか教えてください。

2013年2月7日更新:より良い方法については、MikaelGrevstenによる以下のコメントをご覧ください。

于 2013-02-06T13:21:17.200 に答える
0

@GetFieldとグループの名前を使用して、ラジオボタンのグループを検証できました。

この例では、グループ名はBankLossでした。

// BankLoss
var radio1 = @GetField("BankLoss")
if (radio1 == null || radio1 == ""){
    valid = false;
    errors.push("Please indicate if there was a potential bank loss.");
}

私のために働いた...

于 2013-07-26T20:27:47.730 に答える
0

さらに単純でわかりやすい:「オプションを選択」のようなオプションがあり、空の値「」を設定する場合は、validateRequiredを使用できます。それだけです。例:

コンボボックスの値が次の場合:

["-Select an option-|","Text1|Value1","Text2|Value2"] 

@Naveenが言ったように、[すべてのプロパティ]>[データ]>[バリデーター]>+>[ValidateRequired]>[メッセージの設定]に移動すると完了です。

于 2014-01-09T14:25:33.150 に答える