onChange() 从无效的字段调用 save()
重现步骤(Turbo Forms,CRM 2015.1, - > CRM 2016.2)
- 表单(包含或不包含其他必填字段)有一个空白且必填的字段。
- 丢失焦点在空字段(本例中为标题),这会触发字段通知图标: http://i.stack.imgur.com/KbSOE.jpg
- 连接 onChange Handler 为空字段调用 save:
function forceSaveOnChangeOfTitle(){
Xrm.Page.data.save().then(
function () {},
function (error, message) {console.error("Error: " + error + " Message: " + message);}
);
}
- 在空字段中输入值。
结果:
- 保存失败。调用失败回调,错误号为
null
,消息为未定义。 - 字段通知消失,但右下方仍显示所需的消息: http://i.stack.imgur.com/KxblB.jpg
已知的解决方法:
将属性的值设置为自身:
function forceSaveOnChangeOfTitle(){
var title = Xrm.Page.getAttribute("title");
title.setValue(title.getValue());
Xrm.Page.data.save().then(
function () {},
function (error, message) {console.error("Error: " + error + " Message: " + message);}
);
}
使用 1ms 超时:
function forceSaveOnChangeOfTitle(){
setTimeout(function() {
Xrm.Page.data.save().then(
function () {},
function (error, message) {console.error("Error: " + error + " Message: " + message);}
);
}, 1);
}