Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

时间:2022-11-09 00:14:55

       这节介绍onchange事件的编程,在前面的章节中提过:Dynamics CRM 脚本编程基本上是围绕3个点来进行开发的。它们分别是:onload,onsave,onchange。onchange事件是正对“实体”属性的,和Javascript中的onchange事件一样,都是在控件值发生改变时而触发的。

     接下来我们就简单定义一个onchange事件吧,这次我们依然选择“客户”实体进行开发。

     我们为“客户”实体的属性“主要电话”添加onchange事件,该事件的职责为:如果“主要电话”的值不为空,就将“主要电话”中的值自动赋给属性“其他电话”和属性“传真”。

     具体操作如下:

     Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图4-1

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图4-2

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-3

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-4

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-5

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-6  编辑“onchange”事件触发时需要调用的函数。

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-7 

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图4-8  为属性“主要电话”添加onchange事件

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-9 为“主要电话”添加完onchange事件后,回到表单编辑窗口进行“保存”和“发布”操作。

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-10

 

Dynamics CRM 2011 编程系列(4):JS脚本编程之onchange事件

图 4-11

 

 

 

该节涉及的代码

function telephone1_onchange()
{
//获取属性"主要电话"的值
var telephone1=Xrm.Page.getControl("telephone1").getAttribute().getValue();
//获取属性"其他电话"在表单中的控件
var telephone2=Xrm.Page.getControl("telephone2");
//获取属性"传真"在表单中的控件
var fax=Xrm.Page.getControl("fax");

if(telephone1 != null)
{
//赋值
telephone2.getAttribute().setValue(telephone1);
fax.getAttribute().setValue(telephone1);
}


}

 

 

        小结:按照上图的顺序操作下来就可以为“主要电话”添加一个onchange事件了。在日常的开发中,onchange事件常用来验证输入是否正确或保证表单上某“属性值”的准确性。如:A+B=C,为A和B添加onchange事件来保证公式"A+B"的准确性。