1

簡単なバリデーションを作成したいフォームがありますが、正しく機能していないようです。オプション セットには約 10 の選択肢がありますが、いくつかの検証のみを作成したいと考えています。たとえば、特定の人種の場合、ダイナミクス フォームに「指定」テキスト ボックスが表示され、データを入力できるようになりますが、オプション セットから特定の選択を行うと、ボックスは表示されません。私はそれを明確に説明したことを願っています。

現在、以下のコードは次のように機能します。

もう 1 つのボックスは、フォームの読み込み時には表示されません。オプションセットのドロップダウンから選択すると、フォームに表示され、データを入力できるようになります。ただし、特定の選択肢が選択された場合にのみ表示されます。間違った選択をすると、クリアされて再び見えなくなるはずです。現時点では、それは表示されたままで、テキストはフィールドに留まります。デフォルトでは、フォームロード時にオプションセットに値が割り当てられていません。

以下のコードは、ifステートメントが何らかの形で間違っているに違いないと思います。

function Example_Other() {
    Xrm.Page.getAttribute("new_choiceoptionset").getValue();
    if (Xrm.Page.getAttribute("new_choiceoptionset").getValue() == "White, Other
 (specify)" || "Asian, Other (specify)" ||
        "African, Other (specify)" || "Mixed, any other (specify)" || "Other ethnic group (specify)") {
        Xrm.Page.ui.controls.get("new_othertextbox").setVisible(true);
    } else {
        Xrm.Page.ui.controls.get("new_othertextbox").setVisible(false);
        Xrm.Page.getAttribute("new_othertextbox").setValue(null);
    }
}
4

2 に答える 2

2

ifステートメントは別の方法で機能します。ブール式を提供する必要があるため、このようなチェックを実行したい場合は、次のようにする必要があります。

var myValue = Xrm.Page.getAttribute("new_choiceoptionset").getValue()
if (myValue == "White, Other (specify)"
    || myValue == "Asian, Other (specify)"
    || myValue == "African, Other (specify)"
    || myValue == "Mixed, any other (specify)"
    || myValue == "Other ethnic group (specify)")
{
    //Your code here
} else {
    //Other code here
}
于 2013-04-26T15:09:04.067 に答える
0

文字列に割り当てられた値ではなく、オプションの数値を使用してこの問題を解決しました...理想的ではありません(値は時間の経過とともに変化する必要があるため)が、必要な機能が得られます。

例:

var myValue = Xrm.Page.getAttribute("new_choiceexample").getValue();
 if (myValue == 778300002 || 
myValue == 778300006 || 
myValue == 778300009 || 
myValue == 778300014 || 
myValue == 778300015)
{
于 2013-04-29T11:06:34.890 に答える