我有一个电子邮件表单字段的验证方法,该字段在字段的onchange事件上调用,如果验证失败,则将焦点设置回字段:
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;
}
}
}
问题是如果焦点在下次离开字段并且用户没有进行任何更改,则不会再次触发onchange事件。不幸的是,没有我可以使用的lostFocus事件。你有什么建议可以解决这个问题吗?
答案 0 :(得分:0)
您有几个选择:
答案 1 :(得分:0)
这个答案可能在几个月之后,但为了将来参考,我建议将表单字段定制为单行文本,格式选项为&#34;电子邮件&#34;。
将格式选项设置为&#34;电子邮件&#34;将允许客户端验证字段上的用户输入,而无需JavaScript。
Here is a reference指示Dynamics CRM中单行文本数据类型可用的格式选项。