单选按钮验证

时间:2013-06-17 11:06:03

标签: javascript radio-button dynamics-crm-2011 xrm

我在Dynamics CRM 2011表单上有一系列不同的字段。我正在使用javascript进行各种检查。其中之一是将特定字段设置为“必需”以防止用户保存表单,直到为该字段分配值。 (强制要求)

Xrm.Page.data.entity.attributes.get("new_FieldA1").setRequiredLevel("required"); 

但是,我的一些字段是单选按钮。上面的代码似乎不适用于这些。无论如何,我认为“否”的选择是“否”。这意味着如果选择“否”,我仍然会收到一条消息“你必须为FieldA1提供一个值”。

任何人都可以建议一个工作,所以允许“不”吗? 感谢。

要检查必填字段,(如果表单上填写了特定字段),用户选择一个单选按钮作为表单底部的最后一个选项(“将此表单标记为完成?”)当选择是时,以下功能执行一些基本检查:

function FormSaveAlert()
{
    if (Xrm.Page.getAttribute("new_formcompleted").getValue() == true)
    {
        if (confirm("Are you sure this form is complete? \n Once saved, this form cannot be  modified again.") == false)
        {
            Xrm.Page.getAttribute("new_formcompleted").setValue(false);
        }
        else
        {
            var HF1 = Xrm.Page.getAttribute("new_hf1field");
            HF1.setRequiredLevel("required"); 
            if (HF1.getValue()==null) {HF1.setValue(false);}
            //Xrm.Page.data.entity.attributes.get("otherfield").setRequiredLevel("required"); 
        }
    }
}

如果表单标记为完成,并且需要某个字段但包含null,则会显示一条消息,阻止保存。动态中的默认消息 - “您必须为HF1提供值”

2 个答案:

答案 0 :(得分:1)

我做了一个测试,我可以复制这个问题,如果我设置两个选项null,在我选择No后,getValue函数返回null而不是false

(我只使用谷歌浏览器,但由于支持自定义,它必须适用于所有浏览器)

如果您的要求符合要求(显示No为默认值),我建议按代码强制执行默认值,如下例所示:

var fieldA1 = Xrm.Page.getAttribute("new_FieldA1");
fieldA1.setRequiredLevel("required");
if (fieldA1.getValue()==null) { fieldA1.setValue(false); }

答案 1 :(得分:0)

必填字段必须有一个值,但是一个位字段总是有一个值,所以我实际上希望它被视为包含一个值,即使它看起来不是。

你也可以发布x_formcompleted的onChange代码,因为那是触发错误的原因吗?

这里有两个字段,我看不出它们如何交互的逻辑。

当然你只需要一个,如果勾选要求他们确认,如果他们改变了主意,它就会被重置。

还要考虑使用值为yes / no / null的选项集(为此设置了内置的全局选项)。使Null(“未分配”)成为默认值,并使字段成为必需字段(不是通过脚本,只是始终在字段属性中)。