Creating form in netsuite using suitscript 2.0

3.3k views Asked by At
var formData = new FormData();
 formData.append("name", "John");
 formData.append("age", "31");
 for (var value of formData.values()) {
             log.debug(value); 
                }

but when i want to log form values using formData api. It's giving below error.
ReferenceError: "FormData" is not defined.

1

There are 1 answers

0
bknights On BEST ANSWER

FormData is a client side API managed under XMHttpRequest

UserEvent scripts are server side scripts with no browser based APIs available at all.

So you could use FormData in a client script to send info to a Suitelet or RESTlet but it's not present in a UserEvent script.

If you want to create a form in a Suitelet using SS2.0 you can use the following as a sample:

/**
 *@NApiVersion 2.x
 *@NScriptType Suitelet
 */
define(["N/log", "N/redirect", "N/runtime", "N/ui/serverWidget", "N/url", "./kotnRECBCFilters"], 
    function (log, redirect, runtime, ui, url, kotnRECBCFilters_1) {
    function showPropertiesForm(context) {
        var form = ui.createForm({
            title: 'Property Trust Ledger'
        });
        var req = context.request;
        var fromLoc = form.addField({
            id: 'custpage_loc',
            type: ui.FieldType.SELECT,
            label: 'For Property',
            source: 'location'
        });
        fromLoc.updateLayoutType({ layoutType: ui.FieldLayoutType.NORMAL });
        fromLoc.updateBreakType({ breakType: ui.FieldBreakType.STARTCOL });
        if (req.parameters.custpage_loc) {
            fromLoc.defaultValue = req.parameters.custpage_loc;
        }
        var notAfterDate = form.addField({
            id: 'custpage_not_after',
            type: ui.FieldType.DATE,
            label: 'On or Before'
        });
        if (req.parameters.custpage_not_after) {
            notAfterDate.defaultValue = req.parameters.custpage_not_after;
        }
        form.addSubmitButton({
            label: 'Get Detail'
        });

        //... bunch of stuff removed

        context.response.writePage(form);
    }

    function onRequest(context) {
        if (context.request.method === 'POST') {
            var currentScript = runtime.getCurrentScript();
            var params = {};
            for (var k in context.request.parameters) {
                if (k.indexOf('custpage_') == 0 && k.indexOf('custpage_transactions') == -1) {
                    if ((/^custpage_.*_display$/).test(k))
                        continue;
                    params[k] = context.request.parameters[k];
                }
            }
            redirect.toSuitelet({
                scriptId: currentScript.id,
                deploymentId: currentScript.deploymentId,
                parameters: params
            });
            return;
        }
        showPropertiesForm(context);
    }
    exports.onRequest = onRequest;
});