我在 CRM 表单中有一个出生日期字段和一个年龄字段。保存记录时会计算年龄,如果年龄小于 18 岁,则年龄字段应变为红色。
当我保存表单时,该字段会变成红色一秒钟,然后又恢复正常。我的网络资源正在使用表单的 OnSave 事件。当我在年龄字段的 ONChange 事件上使用更改颜色代码时,我必须保存表单两次以显示它变为红色。
我如何摆脱这种保存表单的两次?这是我的代码:
function setAge()
{
var DOB = Xrm.Page.getAttribute("inmate_dob").getValue();
var Today = Xrm.Page.getAttribute("inmate_bookingdate").getValue();
Today.setHours(0, 0, 0, 0);
var db = 0;
if(DOB > Today )
{
alert("Please Enter Genuine BirthDate !!!");
Xrm.Page.getAttribute("inmate_dob").setValue(null);
}
else
{
db = Today.getFullYear() - DOB.getFullYear();
var x = Today.getDate() ;
var y = DOB.getDate() ;
var a = Today.getMonth() + 1;
var b = DOB.getMonth() + 1;
if((a < b) || (a==b & x < y))
db=db - 1;
}
var result = Xrm.Page.getAttribute("inmate_age").setValue(db);
if (db <18)
{
document.getElementById("inmate_age").style.backgroundColor = 'red';
document.getElementById("inmate_age_c").style.backgroundColor = 'red';
}
}
}
我还尝试在年龄字段的 ONChange 事件上单独使用最后一个 IF 条件。这提示我保存记录两次。