将窗体发布到弹出窗口而不是父窗口

时间:2012-06-15 07:06:36

标签: javascript html popup

我想发布一个表单弹出窗口。问题是,表单成功发布但它也在父窗口上发布。我想只在弹出窗口中提交表单

'<input type= button value ="Submit Form" onclick="adNetworkForm()" >
<script>
function adNetworkForm(){ 
targetUrl = "http://somesite.com"    
    var myForm = document.createElement('form');
    myForm.method = 'post';
    //myForm.action = targetUrl;        

    var inpt1 = document.createElement('input');
    inpt1.setAttribute('name','a');
    inpt1.setAttribute('type', 'hidden')
    inpt1.value = "1"; 

    var inpt2 = document.createElement('input');
    inpt2.setAttribute('name','b');
    inpt2.setAttribute('type', 'hidden')
    inpt2.value = 2; 
    myForm.appendChild(inpt1);
    myForm.appendChild(inpt2);
    document.body.appendChild(myForm);
    myForm.submit(popitup(targetUrl));
    document.body.removeChild(myForm);
}

 function popitup(url) {
newwindow=window.open(url,'name','height=600,width=500');
if (window.focus) {newwindow.focus()}
return false;
}

</script>​'

JS Fiddle

1 个答案:

答案 0 :(得分:5)

您可以为表单分配一个onsubmit事件处理程序来调用一个函数,该函数在提交表单时弹出一个新窗口并将表单定位到该窗口,如:

<form action="..." method="post" onsubmit="some_popup_post(this);">
<!-- form fields etc here -->
</form>

js代码将是:

function some_popup_post(form) {
    window.open('', 'formpopup', 'width=400,height=400,resizeable,scrollbars');
    form.target = 'formpopup';
}

你的意思是这样的......