javascriptだけでform送信
/**
* Formとして送信
* https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript
*/
function _sendForm(method, url, data) {
var form = document.createElement("form");
var node = document.createElement("input");
var csrfToken = document.head.querySelector('meta[name=csrf-token]').getAttribute('content');
form.method = method;
form.action = url;
data['authenticity_token'] = csrfToken;
Object.keys(data).forEach(function(key){
if (typeof(data[key]) === 'string') {
node.name = key;
node.value = data[key].toString();
form.appendChild(node.cloneNode());
} else if (typeof(data[key] === 'array')) {
data[key].forEach(function(row){
Object.keys(row).forEach(function(childKey){
node.name = key + '[]['+childKey+']'
node.value = row[childKey];
form.appendChild(node.cloneNode());
});
});
}
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}