我是 netsuite 脚本使用 javascript 的新手。我想问一下,如何使用javascript将字段强制设置为false。
希望有人可以帮助我。
答案 0 :(得分:1)
您使用的是正确的方法,但客户端脚本不支持setMandatory
。您可以尝试在User Event,Before Load事件处理程序中使用完全相同的代码。
与文档相反,nlobjField
返回的nlapiGetField
不是只读。一些setter方法在客户端仍然有效(例如setDisplayType
)。您可以尝试使用哪些功能,哪些功能不起作用,但客户端不支持setMandatory
。
答案 1 :(得分:0)
如果在客户端脚本中使用nlapiGetField(fieldname)
返回nlobjField
对象,则返回的对象为 read-only
。这意味着您可以在对象上使用nlobjField
getter方法,但是,您不能使用nlobjField
setter方法来设置字段属性。
但是你可以使用
nlapiSubmitRecord(item_obj, true, true);
忽略记录中的必填字段。
有关详细信息,请查看方法中包含的参数
nlapiSubmitRecord(record, doSourcing, ignoreMandatoryFields);
答案 2 :(得分:0)
也许我的答案已经很晚了,但是对于其他人来说,这就是我通过客户端脚本进行的操作。
nlapiSetFieldMandatory('yourFieldId', true);
这已经过测试,因为我经常使用它。虽然有人说你不能通过客户端将字段设置为强制字段,但你可以。我在netsuite docs上找不到任何关于此的文档。
希望它有所帮助!
答案 3 :(得分:0)
根据@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');
}
}
答案 4 :(得分:0)
在客户端脚本上使用SS2.0,可以通过以下代码将其强制设置为
:var newSupervisorField = context.currentRecord.getField('custrecord_new_supervisor');
newSupervisorField.isMandatory = true;
答案 5 :(得分:0)
您可以使用 SuiteScript 2.0 进行强制设置,尽管它在 1.0 中不起作用。
下面是在客户记录上使用客户端脚本的示例片段
var currentRecord;require(['N/currentRecord'], (currentRecord) => {
var field = currentRecord.get().getField('comments');
field.isMandatory = true;
})