我們知道通過界面設置字段的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上