如何清除日期字段?
以下代码似乎不起作用:
if (Xrm.Page.getAttribute("new_boolfield1").getValue() != null) {
switch(Xrm.Page.getAttribute("new_boolfield1").getValue()) {
case false:
Xrm.Page.getAttribute("new_datefield1").setValue(null); // this doesn't work
Xrm.Page.getAttribute("new_datefield1").setValue(); // this doesn't work either
case true:
Xrm.Page.getAttribute("new_datefield1").setValue(new Date());
}
}
答案 0 :(得分:3)
Xrm.Page.getAttribute('new_datefield1').setValue();
应该有效。确保您没有在其他任何地方设置日期字段,并确保将break
语句放在
http://crmbusiness.wordpress.com/2012/05/17/crm-2011-javascript-to-set-the-current-date-and-time/
**编辑**这是你的个案陈述
var b = false;
switch(b) {
case false:
console.log("false");
case true:
console.log("true");
}
如果没有break语句,这将打印“false true”
var b = false;
switch(b) {
case false:
console.log("false");
break;
case true:
console.log("true");
break; // <- not really required but good practise
}
答案 1 :(得分:1)
在CRM 2011中清除字段的正确方法是将其值设置为null
Xrm.Page.getAttribute("new_datefield1").setValue(null);
如果您的字段仍未清除,可能有两个原因:
您将日期设置在其他位置(如jasonscript 所建议的)
您的new_boolfield1
不是布尔字段(CRM中的two
options
),而是一个选项集
您可以轻松测试这些条件,首先在交换机外检查,第二个检查alert
或console.log
答案 2 :(得分:0)
null为false,因此更清晰
var xrmPage = Xrm.Page;
var date1 = xrmPage.getAttribute("new_datefield1");
var bValid = xrmPage.getAttribute("new_boolfield1").getValue();
date1.setValue(bValid ? new Date() : null);
投票给出了上面的答案,因为它也会纠正你的代码