根据checkbox-Netsuite删除字段值

时间:2015-11-11 13:03:35

标签: netsuite

我有一个要求,如果用户取消选中该复选框,则在保存时应清除某个字段的值。

要打印是一个复选框 检查#是字段。

如果用户取消选中“待打印”复选框,则在保存页面时应清除检查#字段。

这应该是一个用户事件,是否会在提交功能之后? 我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

在这里,您有两种选择来处理您的要求。

1)您可以将@John上面提到的客户端脚本写在他的评论和字段更改上,您可以清除那些您不想在表单提交时保存的字段值。

2)编写一个提交前功能并验证复选框字段值,如果未选中,则清除那些您不想保存的字段。

答案 1 :(得分:1)

I would recommend using user event before submit script to set field value as null, as client script may not fire if data entry point is through csv import, suitescript, etc.

if (nlapiGetFieldValue(TO_BE_SUBMITTED_FIELD_ID) == 'F'){
  nlapiSetFieldValue('tranid', null);` 
}

If you wish, You may write additional client script to disable/clear the field if value of checkbox is set to false, for better UX.

For sequence number I would say, use the below code (I am assuming sequence numbers are pure numbers)

if (nlapiGetFieldValue(TO_BE_SUBMITTED_FIELD_ID) == 'T'){
//search in descending order (use this code in your same before submit script)   
var search = nlapiCreateSearch(RECORD_TYPE, ['mainline', 'is', 'T'], new nlobjSearchColumn('tranid').setSort(true));
var results = search.runSearch();
var records = results.getResults(0, 1);

var nextTranId = praseInt(records[0].getFieldValue('tranid'), 10) + 1;
nlapiSetFieldValue(tranid, nextTranId);
}