Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填、禁用以及可见

时间:2021-02-08 07:19:24

我们知道通过界面设置字段的change事件,是否是必填,是否可见非常容易。但有时我们需要动态地根据某些条件来设置,这时有需要通过js来动态地控制了。

下面分别介绍如何用js来动态设置。

 

一、动态设置字段的change事件

// form on load event
function onLoad() {
    init();
 
    pageAttr.delivery_from.addOnChange(deliveryFromChange);
    pageAttr.type.addOnChange(typeChange);
    pageAttr.order_purpose.addOnChange(orderPurposeChange);
    pageAttr.ship_toid.addOnChange(getShiptoInfo);
 
    pageAttr.sold_toid.addOnChange(orderByChange);
}

其中的init方法及pageAttr、page请参考我的这篇博客《Dynamic CRM 2013学习笔记(二十三)CRM JS智能提示(CRM 相关的方法、属性以及页面字段),及发布前调试

这里的addOnChange就跟在form页面,添加字段OnChange事件一样,但在js里更灵活

 

二、动态设置字段为必填或取消必填

设置必填方法:setRequiredLevel('required')

取消必填:setRequiredLevel('none')

var df = pageAttr.delivery_from.getText();
  if (df == "Others") {
      pageAttr.deliveryfrom_plsspecify.setRequiredLevel('required');
  }
  else {
      pageAttr.deliveryfrom_plsspecify.setRequiredLevel('none');
  }

 

三、动态设置字段是否可见

设置可见:setVisible(true)

设置不可见:setVisible(false)

var op = pageAttr.order_purpose.getText();
    if (op == "Replacement of Return materials") {
        page.rma_noid.setVisible(true);
    }
    else {
        page.rma_noid.setVisible(false);
    }

但需要注意的是这里就不是attribute了,这里只能设置在control上。

 

四、动态设置字段是否禁用

设置禁用:setDisabled(true)

设置启用:setDisabled(false)

这里也是设置在control上

 

Dynamic CRM 2013学习笔记 系列汇总 -- 持续更新中