首页 > 解决方案 > 具有提交输入类型的 window.open createElement('form') 未调用操作

问题描述

我正在尝试使用 javascript 中的自定义表单打开一个新窗口

在表单中,我有一些字段和操作以及提交输入(请注意,元素应该是 input type=submit

但是,当单击弹出窗口中的提交按钮时,不会执行提交操作。

    var map = window.open("","editormap",'width=600,height=600,scrollbars=no,resizable=no');
    
        var mapForm = map.document.createElement('form');
        mapForm.target = "editormap";
        mapForm.id="inpForm";
        mapForm.method = "POST"; 
        mapForm.action = "/dashboard/save/"+val1+"/"+val2;
    
      var mapInput3 = map.document.createElement('input');
      mapInput3.type = 'submit';
      mapInput3.name = 'submit';
      mapInput3.value = 'Submit';
      mapForm.appendChild(mapInput3);
    
       var  mapInput = map.document.createElement('input');
        mapInput.type = "button";
        mapInput.name = "cancel";
        mapInput.value = "Cancel";
        mapInput.onclick=map.close;
        mapForm.appendChild(mapInput);
        
    
      var  mapInput1 = map.document.createElement("textarea");
        mapInput1.name = "code";
        mapInput1.value = repoValues;
        mapForm.appendChild(mapInput1);
        
     var mapInput2 = map.document.createElement("input");
     mapInput2.type = "hidden";
    mapInput2.name = "filename";
    mapInput2.value = 'some data';
    mapForm.appendChild(mapInput2);
    
   map.document.body.appendChild(mapForm); 

我也尝试过如下绑定

var parentForm = document.createElement.bind(document);
var mapForm = parentForm('form');

提交仍然没有执行请求的操作。

请帮助或指导正确的方向。

标签: javascriptwindow.opencreateelement

解决方案


由于窗口的位置为空,因此相对 URL 没有要相对于解释的基本 URL。所以你需要在 URL 中提供完整的actionURL。

        mapForm.action = "https://www.example.com/dashboard/save/"+val1+"/"+val2;

演示

(堆栈片段不允许弹出窗口,所以我不得不使用 jsfiddle 进行演示。)


推荐阅读