无法获取未定义或空引用的属性“new_textholder”
Unable to get property 'new_textholder' of undefined or null reference
我正在使用我在网上找到的代码将标准选项集字段转换为MS CRM 2015在线中的复选框。它一直给我上述错误。
这是代码:
function MultiPickList3(param1, param2, param3,param4,param5)
{
try
{
var fn = arguments.callee.toString().match(/function's+([^'s'(]+)/);
if (param1==null || param2==null)
{
alert("Error: Parameter missing. 'n Format: <optionset fieldname> , <option value text field> , [<option header>], [<select color>] , [<deselect color>] , 'n ["+"Function="+fn[1]+"]" );
return true;
}
var tparamtype=Xrm.Page.data.entity.attributes.get(param1).getAttributeType();
if (tparamtype!="optionset")
{ alert (param1+"(first parameter) should be of type optionset 'n"+"[function="+fn[1]+"]");
return true;
}
var tparamtype=Xrm.Page.data.entity.attributes.get(param2).getAttributeType();
if (tparamtype!="memo")
{ alert (param2+"(second parameter) should be of type memo (text with mutiline) 'n[function="+fn[1]+"]");
return true;
}
var plOptions=param1;
var plText=param2;
var plMenuItem="View Selected List";
var SelectedList_orig = crmForm.all[plText];
var FullList=crmForm.all[plOptions];
var SelCtr=-1;
var new_selColor="orange";
var new_deSelColor="white";
if (param4!=null)
new_selColor=param4;
if (param5!=null)
new_deSelColor=param5;
var SelectedList =SelectedList_orig.value.split("'r'n");
crmForm.all[plText].style.display="none";
if(FullList!=null && SelectedList!=null)
{
initColor();
if (param3!=null && param3!="")
{
plMenuItem=param3;
}
else
{
plMenuItem=FullList.options[0].text;
changeColor("grey",0);
}
for (var ctr=0; ctr<SelectedList.length;ctr++)
{
selCtr=SelectedIndex(SelectedList[ctr]);
if (selCtr >-1)
{
changeColor(new_selColor,selCtr);
}
}
}
function SelectedIndex(selectedText)
{
var FullListText;
for (var ctr1=0; ctr1<FullList.options.length;ctr1++)
{
FullListText=FullList.options[ctr1].text;
if ( FullListText==selectedText)
{
return ctr1;
}
}
return -2;
}
crmForm.all[plOptions].attachEvent('onchange', OnChangePL);
function OnChangePL()
{
var SelCtr=-1;
var sel=crmForm.all[plOptions].SelectedText;
if (sel==plMenuItem)
return;
SelCtr=SelectedIndex(sel);
var SelColor="grey";
SelColor=crmForm.all[plOptions][SelCtr].style.backgroundColor;
if (SelColor==new_selColor)
{
changeColor(new_deSelColor,SelCtr);
saveChanges(sel,selCtr,"del");
}
else
{
changeColor(new_selColor, SelCtr);
saveChanges(sel,selCtr,"add");
}
}
function saveChanges(p_selText,p_SelCtr,p_mode)
{
switch(p_mode)
{
case "add":
SelectedList.push(p_selText);
break;
case "del":
for (var ctr2=0;ctr2<SelectedList.length;ctr2++)
{
if (SelectedList[ctr2]==p_selText)
{
SelectedList.splice(ctr2,1);
break;
}
}
break;
}
Xrm.Page.getAttribute(plText).setValue(SelectedList.join("'r'n"));
}
function initColor()
{
for (var ctr3=0; ctr3<FullList.options.length;ctr3++)
{ changeColor(new_deSelColor, ctr3); }
}
function changeColor(newColor, newCtr)
{
crmForm.all[plOptions][newCtr].style.backgroundColor=newColor;
}
}
catch (e)
{ alert (e.description);}
}
param2 采用字段"new_textholder",这是一个多行文本字段。它在表单上定义,我已经检查以确保我写得正确。
可能是什么问题?
谢谢!!
此错误可能来自 crmForm.all[plText] 行。 我猜你的组织足够新,以至于不再支持旧的 4.0 api,这意味着 all
对象不再可用,这会给你这个错误(plText 设置为 param2 的值)。 您也许可以修改此代码以处理您的 2015 表单,但我目前没有可用的 2015 组织,所以我不能肯定地说。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- “new”关键字是在构造对象时自动设置“constructor”属性的唯一方法吗
- 如何在 select.options.add(new Option()) 之后添加 2 个属性
- 在具有原型属性的匿名对象上使用new
- 不使用"new"访问原型属性实例化函数对象
- 如何给一个对象's与javascript中的new关键字的属性和方法
- 我应该使用new在typescript类中创建一个对象属性吗?
- 在单个元素上使用new/isolated作用域的两个属性指令
- Mobx:添加new (array)属性到可观察对象
- 不能读取属性'forEach'在new Schema.extend处未定义
- 通过new创建的Javascript对象属性的所有权
- 为什么在使用$new时不能访问我的作用域属性
- fabric.js -如果属性定义在new fabric.Circle()括号之外,则Circle不起作用