如何添加JavaScript变量以形成动作

Lan*_*ore 1 javascript parameters url post

我需要在操作表单的链接中添加一个javascript变量。我的问题,可能吗?

JavaScript函数:

<script>
    function parameter()
    {
        function getUrlVars() {
            var vars = {};
            var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
                vars[key] = value;
            });
            return vars;
        }
        var vpid = getUrlVars()["pid"];
    }
    //var link = "second_02.html" + pid.toString();
</script> 
Run Code Online (Sandbox Code Playgroud)

在我的表单中,我需要将变量“ link”添加到表单操作中,如下所示:

<form action='second_02.html + ?pid=vpid&' id="sky-form" class="sky-form">
Run Code Online (Sandbox Code Playgroud)

我真的不知道我是否对自己遇到的问题做了很好的解释。提前致谢。

Man*_*tra 5

您需要通过JavaScript以编程方式进行操作。

在这行之后...

var vpid = getUrlVars()["pid"];
Run Code Online (Sandbox Code Playgroud)

添加这个...

document.getElementById('sky-form').action = 'second_02.html?pid=' + vpid;
Run Code Online (Sandbox Code Playgroud)

鉴于vpid内容的性质,您可以在窗口的load事件中实现它。

替代方法1

这是一种执行您似乎需要执行的操作的替代方法,但它要求您使用计算出的参数设置新位置。您可以修改尝试从文本框中获取文本的行,以及需要附加到URL的内容。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script>
            function validateForm() {
                //alert('Validating form...');
                var text = document.getElementById('txtValue').value;
                text = escape(text);
                location.href = 'test.html?param=' + text;
                return false;
            }
        </script>
    </head>
    <body>
        <form id="frmTest" method="get" action="" onsubmit="return validateForm();">
            <input id="txtValue" type="text" value="foobar">
            <input id="btnSubmit" type="submit" value="Submit">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

替代方法2

使用此方法,即使使用GET方法,也可以继续使用表单,但是您可以设置隐藏字段的值,然后在提交过程中将其添加到查询字符串中的URL。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script>
            function validateForm() {
                //alert('Validating form...');
                document.getElementById('hidTest').value = 'some calculated value';
                return true;
            }
        </script>
    </head>
    <body>
        <form id="frmTest" method="get" action="" onsubmit="return validateForm();">
            <input id="txtValue" type="text" value="foobar">
            <input id="btnSubmit" type="submit" value="Submit">
            <input name="hidTest" id="hidTest" type="hidden" value="testIt">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)