我正在尝试使用JavaScript for CRM 2013实现以下功能
如果是日期字段
gteq_expirydate
在接下来的45天内设置一个警告onchange。
我该怎么做?
答案 0 :(得分:1)
Add days to JavaScript Date使用此示例对javascript日期执行操作,然后运行简单比较。
var crmDate = Xrm.Page.getAttribute("gteq_passportexpirydate").getValue();
var today = new Date();
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+45);
if(crmDate < tomorrow && crmDate >= today){
alert("care");
}
如果您需要将日期字段的旧值与您在日期字段中写入的新值进行比较,则需要另一个名为“旧日期字段”的字段来运行比较,否则您将检索的值将是新的。
答案 1 :(得分:1)
看一下Moment JS来帮助满足这个要求(没有与项目的联系,只是发现它在CRM中对这些类型的要求非常有帮助。)
您需要为字段添加moment.js库和OnChange事件,类似于:
function checkDateOnChange (e) {
var dateField = e.getEventSource();
var newDate = e.getValue();
if (moment.isDate(newDate) && moment(newDate).isBefore(moment().Add(45, 'days')))
alert("Date is 45 or less days in the future.");
}
除了简单的实现之外,由于流畅的风格,当你在将来看它时,它使代码非常易读。