Skip to content

Instantly share code, notes, and snippets.

@ruandre
Last active December 19, 2021 07:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ruandre/6a8106ed76ea0bc2701ececd6923e7c6 to your computer and use it in GitHub Desktop.
Save ruandre/6a8106ed76ea0bc2701ececd6923e7c6 to your computer and use it in GitHub Desktop.
Create and submit form programmatically
// useful when a 'followed' redirect needs to happen, etc.
// https://github.com/insin/get-form-data
function $forEach(arr, cb) {
var arrLen = arr.length
for (var i = 0; i < arrLen; i++) cb(arr[i])
}
function $form(action, method, fields) {
var form = document.createElement('form')
form.setAttribute('hidden', 'true')
form.setAttribute('action', action)
form.setAttribute('method', method)
$forEach(fields, function (field) {
var tmp = document.createElement('input')
tmp.setAttribute('type', field.type || 'text')
tmp.setAttribute('name', field.name || '')
tmp.setAttribute('value', field.value || '')
form.appendChild(tmp)
})
document.body.appendChild(form)
console.log(getFormData(form)) // debug
form.submit()
}
// usage:
$form('/', 'POST', [
{ name: 'one', value: 1 },
{ name: 'two', value: 2 },
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment