javascript - 具有提交输入类型的 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');
提交仍然没有执行请求的操作。
请帮助或指导正确的方向。
解决方案
由于窗口的位置为空,因此相对 URL 没有要相对于解释的基本 URL。所以你需要在 URL 中提供完整的action
URL。
mapForm.action = "https://www.example.com/dashboard/save/"+val1+"/"+val2;
(堆栈片段不允许弹出窗口,所以我不得不使用 jsfiddle 进行演示。)
推荐阅读
- python - 如何防止错误输入导致应用程序崩溃。Python、HTML 和 CSS
- c# - 断言该方法已使用 xUnit 调用
- python - 即使使用标头,get 请求也会返回 403 状态码
- javascript - 如何在 jQuery 表中添加下拉复选框?
- spring-test - 在 Spring Boot 中设置集成测试数据
- d - 为什么有些功能需要 GC?
- c++ - How can I forward declare an array inside a namespace in c++
- python-3.x - 在 Azure 的 Python 服务总线 SDK 中,如何查询命名空间的共享访问策略?
- android-studio - Android Studio 4.1 - 无法将调试器连接到进程
- python - 返回一个列表,其中包含另一个列表中列表的每个单词的出现