Also note that even dynamically generate fields have an id. You may need to look at the Suitelet to see what it is, but it should have one. For example,
var form = nlapiCreateForm("Serial Number Search"); form.addField('custpage_snsearch_insn', 'text', 'Serial Number'); form.addSubmitButton('Search'); response.writePage(form);
You’ll notice that the field has an id ‘custpage_snsearch_insn‘. Even fields that are added conditionally will have this, and you can use that with request.parameters to get the data.
If the text fields, select, and radio buttons aren’t created using the form API (for example, if your using something like Vue for data entry), you’ll need to attach a client script which finds the fields (using document.getElementById()), converts them to a JS object, and saves them to a hidden field created using the form method shown above. You can attach this code to the saveRecord() event and I think that should do it.
Also, it’s much easier to help if you post some code :). If you can, that’d be fantastic.