如何使用javascript将字段强制设置为false

时间:2015-04-06 07:01:02

标签: javascript netsuite

我是 netsuite 脚本使用 javascript 的新手。我想问一下,如何使用javascript将字段强制设置为false。

希望有人可以帮助我。

6 个答案:

答案 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;
})