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)
我真的不知道我是否对自己遇到的问题做了很好的解释。提前致谢。
您需要通过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)