使用suitcript 2.0在netsuite中创建表单

时间:2017-09-14 08:21:33

标签: netsuite suitescript suitescript2.0

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

但是当我想使用formData api记录表单值时。它给出了以下错误 ReferenceError:" FormData"没有定义。

1 个答案:

答案 0 :(得分:1)

FormData是在client side API

下管理的XMHttpRequest

UserEvent脚本是服务器端脚本,根本没有基于浏览器的API。

因此,您可以在客户端脚本中使用FormData将信息发送到Suitelet或RESTlet,但它不会出现在UserEvent脚本中。

如果您想使用SS2.0在Suitelet中创建表单,可以使用以下示例:

/**
 *@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;
});