繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM