crm 2011 javascript设置日期字段为null

时间:2013-12-12 06:54:10

标签: javascript date dynamics-crm-2011

如何清除日期字段?

以下代码似乎不起作用:

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

3 个答案:

答案 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);

如果您的字段仍未清除,可能有两个原因:

  1. 您将日期设置在其他位置(如jasonscript 所建议的)

  2. 您的new_boolfield1不是布尔字段(CRM中的two options),而是一个选项集

  3. 您可以轻松测试这些条件,首先在交换机外检查,第二个检查alertconsole.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);

投票给出了上面的答案,因为它也会纠正你的代码