Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击表单的“提交”按钮后获取URL_Javascript_Html_Window.location - Fatal编程技术网

Javascript 单击表单的“提交”按钮后获取URL

Javascript 单击表单的“提交”按钮后获取URL,javascript,html,window.location,Javascript,Html,Window.location,我有一个表单,我想在单击提交按钮后检索它的URL。 到目前为止,我所做的是通过JavaScript.Submit()方法提交,然后使用window.location.search将URL存储到一个变量中,然后我还alert()它。 当我第一次填写表单时,警报不会显示任何内容,当我第二次填写表单时,它会返回我第一次填写的值。 注意:单击提交按钮后,我需要停留在同一页面上。 编辑:首先发出警报,然后提交表单,并将变量附加到URL。 以下是我的代码供参考: <html> &l

我有一个表单,我想在单击提交按钮后检索它的URL。

到目前为止,我所做的是通过JavaScript
.Submit()
方法提交
,然后使用
window.location.search
将URL存储到一个变量中,然后我还
alert()
它。

当我第一次填写表单时,警报不会显示任何内容,当我第二次填写表单时,它会返回我第一次填写的值。

注意:单击提交按钮后,我需要停留在同一页面上。

编辑:首先发出警报,然后提交表单,并将变量附加到URL。

以下是我的代码供参考:

<html>
    <body>
        <div>
            <h1>Form 1</h1>
            <form id="form1" method="GET">
                Number 1:<input type="text" id="num1" name="num1">
                <br>
                Number 2:<input type="text" id="num2" name="num2">
                <br>
                Number 3:<input type="text" id="num3" name="num3">
                <br>
                Number 4:<input type="text" id="num4" name="num4">
                <br>
                <button id="sub1" onclick="submitFunc()">Submit</button>
            </form>
        </div>
        <script>
            function submitFunc()
            {
                document.getElementById("form1").submit();
                var loc = window.location.search;
                alert(loc);
            }
        </script>
    </body>
</html>

表格一
第一:

第二点:
第三点:
第四点:
提交 函数submitFunc() { document.getElementById(“form1”).submit(); var loc=window.location.search; 警报(loc); }
我认为使用
window.location.search
不会成功。 相反,您可以随时直接从表单中获取数据和搜索查询,如下所示:

document.getElementById(“myForm”).addEventListener('submit',(ev)=>{
//可选,防止重定向
ev.preventDefault()
//ev.currentTarget是表单元素
var数据=新的FormData(ev.currentTarget);
//根据此答案修改代码:https://stackoverflow.com/a/24964658/7448536
变量queryParts=[];
var entries=data.entries()
for(变量对条目)
queryParts.push(encodeURIComponent(对[0])+“=”+encodeURIComponent(对[1]))
var query=queryParts.join(&)
var loc=窗口位置;
//重新组装url
var url=loc.protocol+'/'+loc.host+loc.pathname+'?'+query
console.log(url)
})

提交

表单提交后,您的页面将刷新,因此,我认为您无法完成此操作。您必须知道要在哪里提交页面。那么为什么要捕获URL呢?这是因为当您使用“提交”页面时,页面会刷新,但第二行会在提交操作之前获得初始的
窗口位置。第二次,这些值已经在URL上了。所以它是有效的:)实际上我需要Python PyQt5中的URL,然后使用URL字符串并获取表单的字段值。您需要使用AJAX发送表单数据,因为当表单提交时,页面会刷新,这是问题的根源。