2017-02-10 2 views
0

Скажем, у меня есть следующий фрагмент, который в основном представляет собой форму с прикрепленной к ней кнопкой. По щелчку, я хочу, чтобы выполнить функцию:SuiteScript 2.0 addButton должен вызывать функцию?

define(['N/ui/serverWidget', 'N/search', 'N/https'], 
function(serverWidget, search, https) { 
function onRequest(context) { 
    if (context.request.method === 'GET') 
    { 
    var form = serverWidget.createForm({ 
     title: 'Some Form' 
    }); 
    // some code 
    form.addButton({ 
     id : '_buttonId', 
     label : 'Button Label', 
     functionName: "someFunctinonIWantToCallOnClick(myParam)" 
    }); 
     context.response.writePage(form) 
    } else { 
     // some other code 
    } 
    } 
function someFunctinonIWantToCallOnClick(myParam) 
{ 
    // some code 
} 
return { 
    onRequest: onRequest 
}; 
}); 

Согласно документации NetSuite по: options.functionName string optional

Имя функции должна быть включена на событие щелчка. Версия 2016 Выпуск 1

Что я делаю неправильно?

ответ

1

В вашем примере существует ряд ошибок.

  1. Вы на самом деле не записываете форму. В конце концов вам нужно:

    context.response.writePage (form);

  2. Ваша функция, которую вы хотите вызвать, находится только на сервере. Он не определен на клиенте. Вам необходимо включить клиентский скрипт, который имеет эту функцию:

    form.clientScriptModulePath = './myFormClient.js';

+0

привет, спасибо за ответ. 1. context.response.writePage (форма); есть, прямо перед выражением else. 2. Это имеет смысл, поэтому, если я правильно понял: мне нужно переместить someFunctinonIWantToCallOnClick (myParams) в клиентский скрипт, привязать его к форме, а затем моя кнопка вызовет функцию? – user2187935

+0

Да. Правильно. – bknights

Смежные вопросы