在NetSuite项目表单上,我想删除下拉列表“Sub-Item Of”(字段名称" parent")中的一些项目,这些项目当前显示所有NetSuite项目。
我尝试在加载前创建用户事件脚本并使用API nlapiRemoveSelectOption ,但是NetSuite会引发错误,通知该方法没有存在。尝试在客户端使用API时,它会返回错误,通知该方法在客户端上不可用。该方法被称为如下:
nlapiRemoveSelectOption('parent', '1'); // 1 is the internal Id
在调查脚本源代码之后,我能够从列表中删除项目的唯一方法是在客户端使用名为 deleteOneOption 的未记录的方法。
getDropdown(window.document.getElementsByName('inpt_parent')[0]).deleteOneOption('1');
但是,这不应该是最好的方法,因为它没有记录,我直接访问DOM对象,这可能不适用于未来的版本。
有没有人知道从该字段中删除某些项目的更好方法?
谢谢。
答案 0 :(得分:1)
人们确实诉诸于此类事情。 其他选项包括:
答案 1 :(得分:1)
感谢您的建议,它真的帮助了我。我最终采用了以下方法:
创建用户事件脚本(加载前事件),以编程方式添加字段,以便我可以更好地控制列表,并且我可以删除或插入选项。如果API nlapiRemoveSelectOption 有效。
function beforeLoad(type, form, request) {
var fld = form.addField('custpage_item', 'select', 'Subitem Of', 'item', null);
// Inserts the field after the "Subitem Of" original
form.insertField(fld, 'parent');
nlapiRemoveSelectOption('custpage_item', '1'); // internal id to remove
}
创建客户端脚本(字段更改事件)以将数据从新自定义字段复制到原始字段。此外,在页面init上,脚本将值设置为添加的字段。
谢谢!