我的目标是将自定义“提交”按钮附加到向外部服务器发送发布请求的Suitelet。我遇到的问题是,在呈现页面时,send()
中的自定义按钮中的函数form.addButton('submit','Submit', send(form));
在页面加载时正在运行。因此,没有数据被发送到send()
函数,因此无法正确处理。
根据我的理解,此问题与原始POST请求呈现Suitelet,然后干扰我要发送的POST请求有关。 我需要做的是分离或区分呈现表单的POST请求和发送表单的表单。理想的做法是在用户事件脚本中完成此操作,但表单只能在SS1.0中的Suitelet中使用...
这有可能吗?我应该使用SuiteScript 2.0来实现这一目标吗? 以下是我的代码的外观:
function main(request, response){
var form = nlapiCreateForm('Submission Form');
form.addField('one', 'text', 'Field 1');
response.writePage(form);
form.addButton('submit','Submit', send(form));
}
function send(form){ process form data somewhere... }
答案 0 :(得分:3)
当您在Suitelet上执行发送(表单)时,您实际上正在运行该功能。 form.addButton方法第3个参数接受一个字符串,所以你想做类似
的事情 form.addButton('submit','Submit', "alert('Sending form')")
如果你想构建自己的POST,你可以添加一个完整的字符串化函数,虽然我认为只包含一个form.addSubmitButton(label)会更容易,并将表单数据发送到同一个Suitelet并从那里开始可以使用nlapiRequestURL
通过POST发送该数据