CRM: Javascript检查电子邮件验证和防止保存,如果不是有效的

CRM: Javascript to Check Email Validation and Prevent Saving if not Valid

本文关键字:保存 如果不 有效 Javascript 检查 电子邮件 验证 CRM      更新时间:2023-09-26

在CRM 2013上,我正在编写一个检查电子邮件验证的javascript。该字段可以包含一个电子邮件地址列表,但是如果电子邮件无效,它将不允许用户保存表单。

我得到了分割和验证工作正常了。

然而,我仍然有问题阻止用户保存表单。

在OnChange上,我选中了"将执行上下文作为第一个参数传递"的复选框

根据MSDN文章的建议,我使用了preventDefault()函数,但是我一直得到错误消息"无法获得未定义或空引用的属性'preventDefault'"。

任何想法都很感激。下面是我的代码:

function EmailTest(EmailField)
{
var Email = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+'.([a-zA-Z])+([a-zA-Z])+/;
if(Email.test(EmailField))
    {
    return true;
    }
else
    {
    return false;
    }
} 
function CheckEmailString(context)
{
try
{
    var EmailString = context.getEventSource().getValue();
    if (EmailString != null)
    {
        var separator = [" ", ",", ";", "|"];
        var EmailArray = EmailString.split(separator);
        var Flag = true;
        for(var i = 0;i < EmailArray.length;i++)
        {
            if(!EmailTest(EmailArray[i]))
            {
                Flag = false;
                break;          
            }
        }
        if(Flag != true)
        {
            alert("The list of emails entered contain invalid email format. Please re-enter");
            context.getEventArgs().preventDefault();
        }
    }
}
catch(err)
{
    alert(err.message);
}

}

你会得到错误

无法获取未定义或空引用的属性'preventDefault'

因为getEventArgs只在save事件中可用,而在onchange事件中不可用。

如果你想停止保存,你应该在保存事件中添加验证检查

我可以建议您尝试更新到完整版本的方法ieXrm.Page.context.getEventArgs.preventDefault () .

我明白在CRM中工作时,您必须参考使用全名,以便您的功能看到防止默认方法。

希望这能有所帮助,但如果没有,祝你好运,寻求解决方案