[英]How can i set field mandatory to false using javascript
我是使用javascript编写netsuite脚本的新手。 我想问一下,如何使用 javascript 将字段强制设置为 false。
希望有人可以帮助我。
.如果您在客户端脚本中使用nlapiGetField(fieldname)
返回nlobjField
对象,则返回的对象是 。 这意味着您可以在对象上使用nlobjField
getter 方法,但是,您不能使用nlobjField
setter 方法来设置字段属性。
但是你可以使用nlapiSubmitRecord(item_obj, true, true);
忽略记录上的必填字段。 有关更多详细信息,请查看方法中包含的参数。
nlapiSubmitRecord(record, doSourcing, ignoreMandatoryFields);
您正在使用正确的方法,但客户端脚本中不支持setMandatory
。 您可以尝试在用户事件中使用完全相同的代码,即加载之前的事件处理程序。
与文档相反, nlobjField
返回的nlapiGetField
不是只读的。 一些 setter 方法在客户端仍然有效(例如setDisplayType
)。 您可以试验哪些可以工作,哪些不工作,但setMandatory
被确认为客户端不支持。
也许我的回答已经晚了,但对于遇到这篇文章的其他人来说,这就是我通过客户端脚本来做的。
nlapiSetFieldMandatory('yourFieldId', true);
这已经过测试,因为我经常使用它。 尽管有人说您不能通过客户端将字段设置为必填字段,但您可以。 不过,我没有在 netsuite 文档上找到任何关于此的文档。
希望能帮助到你!
根据@erictgrubaugh 和@user3627301 的输入,这对我有用
function fieldChanged(type,name){
var metodPayment=nlapiGetFieldText('field_id_to_check');
if ((name == 'field_id_to_monitor_for_change') && (metodPayment=='Financing')) {
var field1 = nlapiGetField('field_id_to_be_disabled');
field1.setDisplayType('disabled');
}
}
在客户端脚本上使用 SS2.0,您可以使用以下代码强制执行:
var newSupervisorField = context.currentRecord.getField('custrecord_new_supervisor');
newSupervisorField.isMandatory = true;
您可以使用 SuiteScript 2.0 进行强制设置,尽管它在 1.0 中不起作用。
下面是在客户记录上使用客户端脚本的示例片段
var currentRecord;require(['N/currentRecord'], (currentRecord) => {
var field = currentRecord.get().getField('comments');
field.isMandatory = true;
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.