我们知道通过界面设置字段的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学习笔记 系列汇总 -- 持续更新中

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

  1. Dynamic CRM 2013学习笔记(十八)根据主表状态用JS控制子表自定义按钮

    有时要根据主表的审批状态来控制子表上的按钮要不要显示,比如我们有一个需求审批通过后就不能再上传文件了. 首先打开Visual Ribbon Editor, 如下图,我们可以利用Enable Rules ...

  2. Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件

    上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...

  3. Dynamic CRM 2013学习笔记(十五)报表设计:报表入门、开发工具及注意事项

    本文是关于CRM 2013报表开发入门介绍,包括开发工具的使用,以及不同于普通Reporting service的相关注意事项. 一.CRM报表简介 报表有两种,SQL-based报表和Fetch-b ...

  4. Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较

    我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest. XMLHttpRequest是最基本的调用方式,JQuery ...

  5. Dynamic CRM 2013学习笔记(十四)复制/克隆记录

    经常有这样的需求,一个单据上有太多要填写的内容,有时还关联多个子单据,客户不想一个一个地填写,他们想从已有的单据上复制数据,克隆成一条新的记录.本文将介绍如何克隆一条记录,包括它的子单据以生成一条新的 ...

  6. Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用

    一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见.下面就介绍下如何用JS对Tab进行控制. 1. 控制可见   function setTabVisableByName( ...

  7. Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示

    CRM的项目,审批流是一个必须品.为了更方便灵活地使用.配置审批流,我们自定义了一整套审批流.首先来看下它的效果: 1. 审批模板 这是一个最简单的审批流,首先指定审批实体,及相关字段,再配置流程节点 ...

  8. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

  9. Dynamic CRM 2013学习笔记 系列汇总

    这里列出所有 Dynamic CRM 2013学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址: Dynamic CRM 2013学习笔记 系列汇总 ...

随机推荐

  1. 简洁既是美—用while语句复制数组

    简洁既是美,程序员应尽量尝试编写简洁的表达式,争取用简单的代码来实现更多的功能,当然,这也要看情况了(有时候也得考虑程序运行的时间嘛). 在阅读C++Prime Plus到while语句时有一个讲一个 ...

  2. java8中hashMap

    摘自:http://www.importnew.com/20386.html 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMa ...

  3. 登陆mysql时出现unknown variable 'character_set_client=UTF8' 的错误

    今天,登陆数据库服务器的时候,出现了下面的错误: [root@localhost app]# mysql -uroot -p mysql: unknown variable 'character-se ...

  4. 现成的HTML5框架

    1>sencha-touch 2>phoneGap 3>jQuery mobile 4>bootstrap

  5. 生成prefix.pch文件

    (借鉴网络资源)

  6. 循序渐进Python3(四) -- 装饰器、迭代器和生成器

    初识装饰器(decorator ) Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数. 使用 decorator 用Python提供的 @ 语法 ...

  7. Ubuntu中vi常用命令

    在Ubuntu中经常需要修改某些文件,这里对vi中的一些常用操作作一下总结. 1.进入vi命令 vi filename: 打开或新建文件,并将光标置于第一行首 进入文件后,处于命令行模式(comman ...

  8. log4net注意事项

    log4net的配置信息可以直接配置在系统的配置文件中,也可以单独写一个配置文件,文件名随便起,如log4net.config,单独的文件属性“复制到输出目录”应该是true.因为log4net框架会 ...

  9. hdu 3506 Monkey Party 区间dp + 四边形不等式优化

    http://acm.hdu.edu.cn/showproblem.php?pid=3506 四边行不等式:http://baike.baidu.com/link?url=lHOFq_58V-Qpz_ ...

  10. Dx unsupported class file version 52.0

    最近用ADT时遇到这个bug,折腾了好几天. 报错信息: Dx unsupported class file version 52.0 Conversion to Dalvik format fail ...