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

时间:2017-05-25 15:00:55

标签: netsuite suitescript

如果这是一个愚蠢的问题,我道歉,但我是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;
        }
    }

4 个答案:

答案 0 :(得分:2)

事实证明,我从未在文档中找到过这一点,一旦从currentRecord.currentRecord获取字段,就可以通过field.isDisabled将其设置为禁用。让我永远地发现isDisabled是字段的属性,然后完全猜测看到isDisabled是对ClientSide Scripts的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, "");
        }
    }
}

答案 1 :(得分:1)

我希望这会有所帮助。

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;
        }

答案 2 :(得分:1)

这是一个很好的问题,这是您正在寻找的最简单的解决方案。使用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;
  }
}



 

答案 3 :(得分:0)

var objRec_Curr = scriptContext.currentRecord;
var TransferType = objRec_Curr.getCurrentSublistValue({sublistId:'xxxxxxxxxx', fieldId : 'xxxxxxxxxxxx'});
if(TransferType == 'ABC')
	eval("nlapiDisableLineItemField('custpage_sublist_out', 'custpage_out_transfer_location', true)");
else
	eval("nlapiDisableLineItemField('custpage_sublist_out', 'custpage_out_transfer_location', false)");