123*_*234 2 javascript dynamics-crm dynamics-crm-online
我在Dynamics CRM中有一个选项设置字段,它有两个值:"进行中"(默认)和"已完成".使用JavaScript,我想发出一个在字段事件OnChange期间触发的确认框.确认框警告用户,如果用户选择"已完成",它将锁定记录中的所有其他字段.
无论如何,我编写了我的代码,以便确认框将设置选项集的值.出于某种原因,它不会改变该字段的值.如果用户单击"已完成",并且当用户单击确认框中的"取消"进行确认和验证时,仍会将字段值设置为"已完成".有什么理由不设置字段值?这是我的代码:
function confirmTaskStatus() {
if (Xrm.Page.getControl("moc_taskstatus").getDisabled()){
var taskStatusValue;
var message = "Do you want to set this Task to Completed?
You cannot edit, change or add anything to the Project Task fields
once it is set to Completed";
if (confirm(message) == true) {
taskStatusValue = 223770000; // Display Label = "Completed"
Xrm.Page.getControl("moc_taskstatus").setDisabled(true);
} else {
taskStatusValue = 223770001; // Display Label = "In Progress"
}
Xrm.Page.getAttribute("moc_taskstatus").setValue(taskStatusValue);
}
}
function saveTaskStatus() {
window.setTimeout(confirmTaskStatus, 1000);
}
Run Code Online (Sandbox Code Playgroud)
可怜我吧; 我还是脚本和Dynamics CRM的新手.
看起来控件已被禁用(通过查看您的代码段).禁用属性SubmitMode设置为false,这意味着CRM将忽略对属性的任何更新,除非您在更新值后通过调用SetSubmitMode强制CRM保存它.
Xrm.Page.getAttribute("moc_taskstatus").setValue(taskStatusValue);
Xrm.Page.getAttribute("moc_taskstatus").setSubmitMode('always');
Run Code Online (Sandbox Code Playgroud)