MS CRM 2011 Form 如何取消OnChange事件

Form上的某个field值发生改变时可以触发该field的OnChange事件。在OnChange事件处理器中,你可以对改变后的新值进行检测,如果新值不符合要求,你可以“取消”该OnChange事件。注意,本文中的例子,取消事件后,新值并不会恢复为旧值,而只是给用户发出错误提示,并将focus集中在被改变的field上。

if (typeof (Contact
Library) == "un
defined") { ContactLibrary = { __">namespace: true }; } ContactLibrary = { Name: "ContactLibrary", OnLoad:
function () { Xrm.
Page.getAttribute("telephone1").addOnChange(function () { ContactLibrary.CheckTelephoneCode("telephone1"); }); }, CheckTelephoneCode: function (fieldname) { var phoneNumber = Xrm.Page.getAttribute(fieldname).getValue(); if (phoneNumber != null && phoneNumber.length != 10) {
alert("telephone number must be 10 digits!"); event.returnValue = false; return false; } else { return true; } }, OnSave: function (ExecutionObj) { if (ContactLibrary.CheckTelephoneCode("telephone1") == false) { Xrm.Page.getControl("telephone1").setFocus(); ExecutionObj.getEventArgs().preventDefault(); } } }

在写本文的时候,将focus集中在发生改变的field上使用Xrm.Page.ui 的setFocus方法并不管用,所以我采用了event.returnValue = false 的方法。另外如何取消OnSave事件,可以参看我的另一篇文章。

时间: 2024-10-31 06:20:19

MS CRM 2011 Form 如何取消OnChange事件的相关文章

MS CRM 2011 在CRM中使用REST Endpoint

CRM提供了两种http://www.aliyun.com/zixun/aggregation/14280.html">WCF Web Service,一个是Organization Service,使用的是SOAP协议,另一个是Organization Data Service,使用的是OData(REST)协议.我们在为CRM写插件(plugin)的时候,通常都要用到第一种web service,而在客户端进行编程的时候就要使用到Organization Data Service了.O

MS CRM 2011 如何获得当前用户使用的界面语言

我在之前的博客中介绍过如何为Microsoft Dynamics CRM 2011 安装语言包,安装了不同的语言包后,用户可以选择使用不同的界面语言.我在本文中介绍一下如何获得当前用户使用的界面语言. (一) 前端 如果是使用JScript获得当前用户使用的界面语言,比如在Form的OnLoad事件处理器中,可以用 context.getUserLcid() 该方法返回一个数字,即为Language ID,比如美国英语是1033,中文简体为2052.完整的Locale ID Values表,大家

MS CRM 2011 用Jscript打开新窗口的几种方法

在CRM中,我们经常遇到这样的情况,点击一个按钮,需要弹出一个新的窗口.比如在客户中添加新联系人: 在MS CRM2011中,有以下几种方法可以打开一个新的窗口: (1) Xrm.Utility.openEntityForm (2) window.open (3) openObj 前两种是在SDK中支持的,尤其推荐使用第一种,但要注意Xrm.Utility这个对象只在Rollup 8以后的版本才支持.这里顺便列出来CRM 2011各个Rollup的版本号: Build VersionRTM: 5

MS CRM 2011 插件(plugin)的快速开发 -- 创建模板

如果你开发过很多MS CRM的插件的话,相信你一定会发现,如果每一次开发插件都从头做起的话,你会做很多重复性的工作.如果你发现你每天做着重复性的工作,你就要考虑怎样才能将重复降到最低,理想的情况就是只做一次. 开发CRM的插件(当然要使用Visual Studio)你需要做很多"准备性的工作",比如添加引用,给插件签名.这些"准备性的工作"也就是重复性的工作,非常浪费时间.一个好的解决办法,就是创建一个你自己的插件模板.在这篇文章中,我为大家介绍两个方面的经验:一是

如何使用 MS CRM 2011 中的目标(Goal) -- 第一节

Goal是CRM 2011中的一个新特性.任何新特性都有一个共同点,就是需要学习曲线.下面就让我们看一下,在CRM 2011中如何使用和管理Goal. 我们先通过一个简单的例子来对Goal有一个初步的认识.我们打开一个CRM范例数据中的一个goal记录," Q3 目標 (範例)". &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 打开Q3的表单后,可以看到几个重要的数据,Goal Metric

MS CRM 2011 剖析Form与Dialog的URL

Microsoft http://www.aliyun.com/zixun/aggregation/4979.html">Dynamics CRM本质上只是一个ASP.Net程序,当然它是一个很厉害的,高手们开发出来的程序.基本上每一个窗口或者对话框都有固定的URL,这些窗口或对话框的特性也是由URL中的query string来决定.也就是说,如果你知道了某个窗口或对话框的URL是什么,你就可以在扩展CRM时,用JScript来打开这个窗口或对话框了. 下面举一个简单的例子来看如何获得一

MS CRM 2011 Save事件的类型

很多人认为,Save事件就是在表单上保存按钮,实际上可以出发Save事件的按钮还有很多.下面我就罗列一下: (1) Save (2) Save and Close (3) Save and New (4) Mark as Completed (activity) (5) Deactivate (6) Activate (7) Assign (8) Send (email) (9) Qualify (lead) (10) Disqualify (lead)

MS CRM 2011 如何获得Option Set的Label与Value

CRM中有一种Field的类型是Option Set.每一个option都是由一对 label + http://www.aliyun.com/zixun/aggregation/9541.html">value组成的.比如我下面图中的Option Set,它的第一个option的Label是Logistic – Incorrect item,而它的value为267060000. 那么CRM SDK为我们提供了哪写方法可以获得一个Option Set 的Label和Value值呢?我在案

MS CRM 2011 如何配置表单接受自定义Querystring参数

在前面的两篇文章中,我分别介绍了如何自定义Ribbon按钮并向其传递参数以及Ribbon按钮与其背后JScript的工作原理.在这篇文章中,我结合前面介绍到的知识,再为大家演示一下如何在表单中传递自定义的参数. 我们还是以扩展Connect按钮为例子,这一节我们安排"To Interest http://www.aliyun.com/zixun/aggregation/16860.html">Partner"这个子选项多做一些事情.如果你点击"Connect