ReferenceError - Контекст не определен (Netsuite) - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь скрыть поле, когда в опции установлен флажок, но у меня есть сценарий, который выдает ReferenceError - Context is not defined.

Вот мой код:

define(['N/currentRecord','N/search', 'N/format'],

function(currentRecord, search, format) {
  function pageInit_disableMyText(scriptContext) {
    console.log('START : here you will be able see logs via console (F12 on browser)');

    var recCurrent = context.currentRecord; //This represents your current loaded record, you can get the values of the fields here

    var myCheckbox = recCurrent.getValue('custbody7'); //This is the code for getting the value of your field
    console.log('myCheckbox Value is : ' + myCheckbox);

    if(myCheckbox == true)
    {
        //get the field and disable it
        fld1 = recCurrent.getField('custbody3');
        fld1.isDisabled = true;
    }
    else
    {
        //if you didn't set the field to be disabled by default, then you don't need the code to enable it here
        //since it runs only once when the page loads
    }
  }

  function fieldChanged_toggleBox(scriptContext) {

    //Different function that triggers on change of a field value, can use this to toggle the checkbox
    var currentFieldID = context.fieldId;

    console.log('context.fieldId : '+ currentFieldID);
    //Check which field is toggled
    if(currentFieldID == 'custbody7')
    {
        //Essentially do the same as above
        var recCurrent = context.currentRecord;
        var myCheckbox = recCurrent.getValue('custbody7');
        if(myCheckbox == true)
        {
            //get the field and disable it
            fld1 = recCurrent.getField('custbody3');
            fld1.isDisabled = true;
        }
        else
        {
            //Now you need code to enable it as you are toggling the disabling and enabling it realtime
            fld1 = recCurrent.getField('custbody3');
            fld1.isDisabled = false;
        }
    }
  }


  //this is the retrun statement where we declare the script type to implement
  return {
    pageInit: pageInit_disableMyText,
    fieldChanged: fieldChanged_toggleBox
  };

});

Когда я использую devtools в Chrome, он показывает ошибку в этой строке:

    var recCurrent = context.currentRecord; //This represents your current loaded record, you can get the values of the fields here

Но я не вижу, в чем проблема.

Любая помощь приветствуется.

Спасибо!

1 Ответ

3 голосов
/ 12 июня 2019

Имя параметра в вашей функции: scriptContext , измените его на контекст

function pageInit_disableMyText(scriptContext) { // <---- Change this parameter to context

По сути, вы можете вызывать его как угодно, но тогда вам придется использовать ту же самую переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...