使用纯JavaScript创建,附加和提交表单

时间:2014-06-04 13:58:03

标签: javascript html

我试图实现onclick函数,它使用POST方法发送参数。我需要这个函数来重新加载页面,是什么让我使用其他方式而不是AJAX。我有一个函数来执行此操作,但此函数使用jQuery。现在我需要"移植它"纯粹的JavaScript。

jQuery函数:

function domainRemoveConfirmation(id, url) {
    //trick to send javascript redirect with post data
    var form = $('<form action="' + url + '" method="post" hidden="true">' +
              '<input type="text" name="domainId" value="'+ id + '" />' +
              '</form>');
    $('body').append(form);
    $(form).submit();
}

我在纯JavaScript中寻找等效函数,我需要创建元素(带有输入字段的表单),附加它并提交它。

提前致谢!

2 个答案:

答案 0 :(得分:5)

你走了:

function domainRemoveConfirmation(id, url){
    var myForm = document.createElement('form');
    myForm.setAttribute('action', url);
    myForm.setAttribute('method', 'post');
    myForm.setAttribute('hidden', 'true');
    var myInput = document.createElement('input');
    myInput.setAttribute('type', 'text');
    myInput.setAttribute('name', 'domainId');
    myInput.setAttribute('value', id);
    myForm.appendChild(myInput);
    document.body.appendChild(myForm);
    myForm.submit();
};

答案 1 :(得分:3)

var form = '<form name="myform" action="' + url + '" method="post" hidden="true">' +
          '<input type="text" name="domainId" value="'+ id + '" />' +
          '</form>';
document.body.innerHTML += form;
document.forms.myform.submit();

var f = document.createElement("form");
f.setAttribute('method',"post");
f.setAttribute('hidden',"true");
f.setAttribute('name',"myform");
f.setAttribute('action',url);

var i = document.createElement("input"); //input element, text
i.setAttribute('type',"text");
i.setAttribute('name',"domainId");
i.setAttribute('value', id);

f.appendChild(i);


document.getElementsByTagName('body')[0].appendChild(f);

document.forms.myform.submit();