我需要以下代码的帮助。
我需要做的是将URL参数传递给这两个隐藏字段。 http://www.yoursite.com/index.php?fieldOne=Work&fieldTwo=Play
它似乎不起作用。另外,我无法在表单字段中添加id。
<input type="hidden" name="fieldOne">
<input type="hidden" name="fieldTwo">
<script>
function FillForm() {
var FormName = "myformname";
var qLoc = location.href.indexOf('?');
if(qLoc < 0) { return; }
var q = location.href.substr(qLoc + 1);
var list = q.split('&');
for(var i = 0; i < list.length; i++) {
var kv = list[i].split('=');
if(! eval('document.'+FormName+'.'+kv[0])) { continue; }
kv[1] = unescape(kv[1]);
if(kv[1].indexOf('"') > -1) {
var re = /"/g;
kv[1] = kv[1].replace(re,'\\"');
}
eval('document.'+FormName+'.'+kv[0]+'.value="'+kv[1]+'"');
}
}
FillForm();
</script>`
答案 0 :(得分:0)
您可以简化代码:
var formName = "myformname",
query = location.href.split("?").pop().split("&"),
i = 0,
len = query.length,
split, elem;
for ( ; i < len; i++ ) {
split = query.split("=");
elem = document[formName][split[0]];
if ( elem ) {
elem.value = split[1].replace(/"/g, '\\"');
}
}
答案 1 :(得分:0)
NULL有一点简化(在代码中有关于查询迭代的代码中有一个小错误)。这是NULL的简化更正,也是我猜测为什么你没有得到理想的结果:
<form name="myformname">
<input type="hidden" name="fieldOne">
<input type="hidden" name="fieldTwo">
</form>
<script type="text/javascript">
var formName = "myformname",
query = location.href.split("?").pop().split("&"),
i = 0,
len = query.length,
split, elem;
for ( ; i < len; i++ ) {
split = query[i].split("=");
//alert(split);
elem = document[formName][split[0]];
if ( elem ) {
elem.value = split[1].replace(/"/g, '\\"');
}
}
</script>
1)确保您使用带有ID的form
标记。我看不到您的HTML。
2)请确保您没有看到隐藏的<input>
中出现新数据?我建议使用调试器并检查实时DOM树而不是源代码。有些调试器不会实时更新源代码。
编辑:
根据来自提问方的新信息,这是另一个修复方法:
<script type="text/javascript">
$(document).ready(function(){
var formName = "dSOfferAllE10Test-1349977611926";
var query = location.href.split("?").pop().split("&");
var len = query.length;
var split, elem;
for (var i = 0; i < len; i++ ) {
split = query[i].split("=");
$('form[name="'+formName+'"]').find('input[name="'+split[0]+'"]').each(function(){
$(this).val(split[1].replace(/"/g, '\\"'));
});
}
});
</script>
这使用jQuery,因此如果您无法访问{{1},请确保在<head>
中附加对jQuery的引用(或至少在<body>
的顶部附近最好从Google托管的版本中获取代码段:https://developers.google.com/speed/libraries/devguide#jquery