Javascript Dynamics CRM 2011/13-当用户没有´时,可在表单字段上重新启用onChange事件;不要改变
我有一个电子邮件表单字段的验证方法,在该字段的onchange事件中调用该方法,并在验证失败时将焦点设置回该字段:Javascript Dynamics CRM 2011/13-当用户没有´时,可在表单字段上重新启用onChange事件;不要改变,javascript,forms,dynamics-crm-2011,dynamics-crm-2013,Javascript,Forms,Dynamics Crm 2011,Dynamics Crm 2013,我有一个电子邮件表单字段的验证方法,在该字段的onchange事件中调用该方法,并在验证失败时将焦点设置回该字段: function ValidateEMail(event) { var source = event.getEventSource(); var value = source.getValue(); var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\"
function ValidateEMail(event) {
var source = event.getEventSource();
var value = source.getValue();
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/igm;
if (value == '' || !re.test(value))
{
Xrm.Utility.alertDialog('Bitte geben Sie eine gültige E-Mail Adresse ein', null);
Xrm.Page.getControl(event.getEventSource().getName()).setFocus(true);
return false;
}
}
函数ValidateEMail(事件){
var source=event.getEventSource();
var value=source.getValue();
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-0-9]+-9]+-Z].[a-2]);
如果(值=“”| |!重新测试(值))
{
Xrm.Utility.alertDialog('bite-geben-Sie-eine-gültige电子邮件地址ein',空);
Xrm.Page.getControl(event.getEventSource().getName()).setFocus(true);
返回false;
}
}
}
问题在于,如果下次焦点离开该字段,并且用户没有进行任何更改,onchange事件不会再次触发。不幸的是,我没有可以使用的lostFocus事件。你有什么建议来解决这个问题吗?你有几个选择:
这个答案可能会在几个月后给出,但为了将来的参考,我建议将表单字段定制为一行文本,并带有格式选项“Email” 将format选项设置为“Email”将启用用户输入字段的客户端验证,而不需要JavaScript 设置可用于Dynamics CRM中单行文本数据类型的格式选项