1

我有一个表单,我想为其构建一些简单的验证,但我似乎无法让它正常工作。选项集有大约 10 个选项,但我只想为其中的一些创建一些验证。例如,如果您是某个种族,动态表单上将出现一个“指定”文本框,允许您输入数据,但如果您从选项集中进行某些选择,则该框不会出现。我希望我已经解释清楚了。

目前,以下代码的工作方式如下:

另一个框在表单加载时不可见,当您从选项集下拉列表中进行选择时,它会出现在表单上并允许您输入数据。但是,它应该仅在选择了某个选项时出现。当做出错误的选择时,它应该清晰并再次变得不可见。目前,它保持可见并在字段中显示文本。默认情况下,选项集在表单加载时没有指定值。

下面的代码,我认为它一定是我的 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 回答