Javascript fireOnChange不启动dynamics crm 2011

Javascript fireOnChange不启动dynamics crm 2011,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,我有一个crm2011联系人表单中的javascript Web资源。 在表单的表单属性下,我将下面的form\u onload()函数添加到onload事件处理程序中。 当我调试它时,我可以看到Form\u onload()方法正在被激发和执行 然而,当我试图编辑手机号码,并点击该字段时,我什么也得不到。当我调试时,mobilephone\u OnChange()方法中的断点没有被命中,它根本不起作用 function Form_onload() { Xrm.Page.getAttribute

我有一个crm2011联系人表单中的javascript Web资源。 在表单的表单属性下,我将下面的
form\u onload()
函数添加到onload事件处理程序中。 当我调试它时,我可以看到
Form\u onload(
)方法正在被激发和执行

然而,当我试图编辑手机号码,并点击该字段时,我什么也得不到。当我调试时,
mobilephone\u OnChange()
方法中的断点没有被命中,它根本不起作用

function Form_onload()
{
Xrm.Page.getAttribute("mobilephone").fireOnChange();
}


function mobilephone_OnChange()
{
alert("fire away");
}
我想做的就是,在
mobilephone\u OnChange()函数中获取小警报


我真的不知道该怎么办了。我读过很多文章,说
.fireOnChange()
将自动连接所有声明的OnChange事件。然而,这似乎不起作用

我想你搞错了

fireOnChange
不会在更改事件上注册函数-它创建一个事件,该事件将触发任何已注册的函数

我认为您需要做的是将mobilephone_OnChange()注册到该字段,或者通过UI注册,或者如果您想以编程方式注册,请使用。

尝试以下方法:

Xrm.Page.getAttribute(“移动电话”).addOnChange(this.mobilephone\u OnChange);
根据js文件的结构,“this”可能是js类的名称


还要注意,如果在Javascript中以编程方式更新字段,onChange事件将不会自动触发。(但可以通过FireOnChange())

您好,谢谢您的回复。当您说fireOnChange创建了一个事件,它将触发任何已注册的函数时,这到底是如何工作的?你能举一个小例子说明如何做到这一点或这通常是如何工作的吗?此外,如果我使用addOnChange方法并以表单_load的形式加载它,如果我存在textfield,则该方法将被命中。您还可以在表单UI中添加onchange事件处理程序。这是否对您不起作用,或者您是否像对表单的onload那样忽略了添加处理程序?onchange处理程序是表单字段的属性,而onload是表单的属性itself@Daryl我试着通过用户界面来做,但由于某种原因,这不起作用。我刚刚在加载方法的JS文件中添加了它,效果很好:)再次感谢,我想你是有意回复@keerz的。我发现,在javascript中添加on change处理程序比在表单UI中添加on change处理程序要快得多。如果您有多个表单版本,尤其如此。@Daryl对于多个表单,这是一个很好的建议。我真的想知道千人是否通过用户界面尝试过。想知道为什么它没有那样工作。。。