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);
}