JavaScript 无法读取 属性 'preventDefault' 的 null
JavaScript Cannot read property 'preventDefault' of null
我正在检查我的 CRM 表单中的 phoneNumber.length。到目前为止,我得到了 8-15 个字符之间的支票 = 可接受的工作。当我尝试堆叠 'if' 来检查零字符时,我得到:
TypeError: 无法在 checkPhoneNumber
处读取 属性 'preventDefault' 的 null
function checkPhoneNumber(executioncontext) {
var phoneNumber;
phoneNumber = Xrm.Page.getAttribute("telephone1").getValue();
if (phoneNumber == null) {
Xrm.Page.ui.setFormNotification("Phonenumber can't be empty", "WARNING", "telephone1nc1");
Xrm.Page.getControl("telephone1").setFocus(true);
executioncontext.getEventArgs().preventDefault();
} else {
Xrm.Page.ui.clearFormNotification("telephone1nc1");
//Insert 8-15 characters
if (phoneNumber != null) {
if (phoneNumber.length < 8 || phoneNumber.length > 15) {
Xrm.Page.ui.setFormNotification("Phonenumber must be between 8-15 chars..", "ERROR", "telephoneerror1");
Xrm.Page.getControl("telephone1").setFocus(true);
} else {
if (phoneNumber == null) {
Xrm.Page.ui.setFormNotification("Telefonnummret får inte vara tomt", "WARNING", "telephone1nc1");
Xrm.Page.getControl("telephone1").setFocus(true);
//executioncontext.getEventArgs().preventDefault(); //vid 0 bombar scriptet
} else {
Xrm.Page.ui.clearFormNotification("telephone1nc1");
}
Xrm.Page.ui.clearFormNotification("telephoneerror1");
}
/*var regex = /^\+(?:[0-9] ?){6,14}[0-9]$/;
if (regex.test(executionObj)) {
// Valid international phone number
} else {
// Invalid international phone number */
}
}
}
整理好之后,我将开始编写代码以检查国际格式并根据实体的国家/地区插入国家/地区代码。因此评论 var regex.
executionContext.getEventArgs()
for Dynamics CRM 仅与 save-events:
相关
This method returns null for any event other than the Save event.
看来您的代码不是(仅)运行 OnSave。
话虽如此,强制用户填写 Dynamics CRM 中的字段的正常方法是将它们设置为业务必填(即字段带有红色星号,用户不填写字段就无法保存表单)- 不是手动制作表单通知。
您需要确保 executioncontext.getEventArgs()
不为空。
在一行中执行此操作的最简单方法:
executioncontext.getEventArgs() && executioncontext.getEventArgs().preventDefault();
我正在检查我的 CRM 表单中的 phoneNumber.length。到目前为止,我得到了 8-15 个字符之间的支票 = 可接受的工作。当我尝试堆叠 'if' 来检查零字符时,我得到: TypeError: 无法在 checkPhoneNumber
处读取 属性 'preventDefault' 的 nullfunction checkPhoneNumber(executioncontext) {
var phoneNumber;
phoneNumber = Xrm.Page.getAttribute("telephone1").getValue();
if (phoneNumber == null) {
Xrm.Page.ui.setFormNotification("Phonenumber can't be empty", "WARNING", "telephone1nc1");
Xrm.Page.getControl("telephone1").setFocus(true);
executioncontext.getEventArgs().preventDefault();
} else {
Xrm.Page.ui.clearFormNotification("telephone1nc1");
//Insert 8-15 characters
if (phoneNumber != null) {
if (phoneNumber.length < 8 || phoneNumber.length > 15) {
Xrm.Page.ui.setFormNotification("Phonenumber must be between 8-15 chars..", "ERROR", "telephoneerror1");
Xrm.Page.getControl("telephone1").setFocus(true);
} else {
if (phoneNumber == null) {
Xrm.Page.ui.setFormNotification("Telefonnummret får inte vara tomt", "WARNING", "telephone1nc1");
Xrm.Page.getControl("telephone1").setFocus(true);
//executioncontext.getEventArgs().preventDefault(); //vid 0 bombar scriptet
} else {
Xrm.Page.ui.clearFormNotification("telephone1nc1");
}
Xrm.Page.ui.clearFormNotification("telephoneerror1");
}
/*var regex = /^\+(?:[0-9] ?){6,14}[0-9]$/;
if (regex.test(executionObj)) {
// Valid international phone number
} else {
// Invalid international phone number */
}
}
}
整理好之后,我将开始编写代码以检查国际格式并根据实体的国家/地区插入国家/地区代码。因此评论 var regex.
executionContext.getEventArgs()
for Dynamics CRM 仅与 save-events:
This method returns null for any event other than the Save event.
看来您的代码不是(仅)运行 OnSave。
话虽如此,强制用户填写 Dynamics CRM 中的字段的正常方法是将它们设置为业务必填(即字段带有红色星号,用户不填写字段就无法保存表单)- 不是手动制作表单通知。
您需要确保 executioncontext.getEventArgs()
不为空。
在一行中执行此操作的最简单方法:
executioncontext.getEventArgs() && executioncontext.getEventArgs().preventDefault();