0

フォームポップアップウィンドウを投稿したい。問題は、フォームは正常に投稿されますが、親ウィンドウにも投稿されます。ポップアップウィンドウのみでフォームを送信したい

'<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フィドル

4

1 に答える 1

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';
}

このようなことを意味しますか..

于 2012-06-15T07:52:31.183 に答える