NetSuite SuiteScript 2.0基于复选框禁用字段

NetSuite SuiteScript 2.0基于复选框禁用字段,netsuite,suitescript,Netsuite,Suitescript,如果这是一个愚蠢的问题,我很抱歉,但我是NetSuite的新手,并且注意到他们的文档绝对是荒谬、可怕和令人恶心的。撇开所有的幽默和苦涩不谈,我找不到SuiteAnswers应该包含的细节。我可以找到类型字段或记录,但它没有显示这些类型的可用选项。它只是显示要调用哪些方法来返回字段或记录 因此,我在培训指定的fieldChanged事件上有它,下面是我的内容 function fieldChanged(context) { debugger; var custome

如果这是一个愚蠢的问题,我很抱歉,但我是NetSuite的新手,并且注意到他们的文档绝对是荒谬、可怕和令人恶心的。撇开所有的幽默和苦涩不谈,我找不到SuiteAnswers应该包含的细节。我可以找到类型字段或记录,但它没有显示这些类型的可用选项。它只是显示要调用哪些方法来返回字段或记录

因此,我在培训指定的fieldChanged事件上有它,下面是我的内容

function fieldChanged(context) {
        debugger;
        var customer = context.currentRecord

        if (context.fieldId == 'custentity_apply_coupon') {
            var field = record.getField("custentity_apply_coupon");
            if (record.getValue("custentity_apply_coupon") == true) {
                reord.getField("custentity_coupon_code").isDisabled = false;

            }
            else{
                reord.getField("custentity_coupon_code").isDisabled = true;
            }
            field.isDisabled = false;
        }
    }

事实证明,我在文档中从未发现过,一旦从currentRecord.currentRecord获得字段,就可以通过field.isDisabled将其设置为disabled。我花了很长时间才发现isDisabled是field的属性,然后完全猜测isDisabled是客户端脚本的get/set调用。下面是最终有效的代码

function fieldChanged(scriptContext) {
    var customer = scriptContext.currentRecord;

    if(scriptContext.fieldId == "custentity_sdr_apply_coupon"){
        debugger;
        var field = customer.getField("custentity_sdr_coupon_code");

        field.isDisabled = !customer.getValue(scriptContext.fieldId);
        if(field.isDisabled){
            customer.setValue(field.id, "");
        }
    }
}
var objRec_Curr=scriptContext.currentRecord;
var TransferType=objRec_Curr.getCurrentSublistValue({sublistId:'xxxxxxxxx',fieldId:'xxxxxxxxxxx'});
如果(TransferType='ABC')
eval(“nlapiDisableLineItemField('custpage\u sublist\u out','custpage\u out\u transfer\u location',true)”;
其他的
eval(“nlapiDisableLineItemField('custpage\u sublist\u out','custpage\u out\u transfer\u location',false)”我希望这会有所帮助

function fieldChanged(context) {
            var currentRecord = context.currentRecord;
            var approvalChkBox = currentRecord.getValue({
                fieldId: 'supervisorapproval'
            });
            var memoField = currentRecord.getField("memo");
            if (approvalChkBox)
                memoField.isDisabled = true;
            else
                memoField.isDisabled = false;
        }

这是一个好问题,这是你正在寻找的最简单的解决方案。使用
getValue
方法和
isDisabled
来满足此要求。代码是不言自明的。祝你好运

function fieldChanged(context) {
  var record = context.currentRecord;
  var fieldname = context.fieldId;

  var changedValue = record.getValue(fieldname); //getValue method is the key here
  var couponid = record.getField('custentity_kld_coupon_code');

  if (fieldname == 'custentity_kld_apply_coupon' && changedValue == true) {

    couponid.isDisabled = false; //isDisabled helps you to enable or disable a field
  } else {
    couponid.isDisabled = true;
  }
}



 

您是如何将事件附加到复选框上的?它是一个脚本2.0,所以NetSuite已经处理过了。我只是检查了一下被选中或未被选中的字段是否是复选框。考虑在代码中添加一些注释,以帮助其他用户更好地理解它