单选按钮验证

Radio button validations

本文关键字:验证 单选按钮      更新时间:2023-09-26

我在Dynamics CRM 2011表单上有一系列不同的字段。我使用javascript来执行各种检查。其中之一是将特定字段设置为"required",以防止用户在为该字段赋值之前保存表单。(强制)

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

然而,我的一些字段是单选按钮。上面的代码似乎不能正确地工作。我认为是/否选项中的"否"被视为无效。这意味着如果选择"No",我仍然会得到一条消息"您必须为FieldA1提供一个值"。

谁能建议一个工作,所以"不"是允许的?谢谢。

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

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提供一个值"

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

(我只使用Google Chrome,但因为是一个支持的自定义,它必须适用于所有浏览器)

如果在您的需求中是可能的(显示No作为默认值),我建议通过代码强制默认值,如以下示例:

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

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

你可以发布的onChange代码x_formcompleted太,因为这是什么触发的错误?

你这里有两个字段,我不太明白它们如何相互作用的逻辑。

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

还可以考虑使用值为yes/no/null的选项集(有一个内置的全局选项集)。将Null ("unassigned")设为默认值,并将字段设为必填(不是通过脚本,只是始终在字段属性中)。