单击按钮后,我有一个javascript函数将变量的值传递给其他页面。 它似乎无法传递部分值,但是由于我的条件比较函数无法正常工作,所以出现了问题。
第一页:
<a href="javascript:void(0)" onclick="pass(2)"></a>
<script>
function pass(x){
var somval = x;
window.location = 'contact/index.php?somval=' + somval;
}
</script>
第二页:
<script>
var somval;
var qsParm = new Array();
function qs() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i < parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0, pos);
var val = parms[i].substring(pos + 1);
qsParm[key] = val;
}
}
}
function compare(){
if(somval == 1){
alert(1);
$("#radio_1").prop("checked", true);
}else if(somval == 2){
alert(2);
$("#radio_2").prop("checked", true);
}else{
};
}
compare();
</script>
控制台上显示的唯一错误是:undefined index.php?somval = 1:352
答案 0 :(得分:0)
代码不正确。您必须将 qaParm 变量初始化为Object。另外,请正确设置变量 someval 的值。请尝试以下代码。
<script>
var somval;
var qsParm = {};
function qs() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i < parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0, pos);
var val = parms[i].substring(pos + 1);
qsParm[key] = val;
if(key == 'someval'){
somval = val;
}
}
}
}
function compare(){
if(somval == 1){
alert(1);
$("#radio_1").prop("checked", true);
}else if(somval == 2){
alert(2);
$("#radio_2").prop("checked", true);
};
}
compare();
</script>
您还可以使用以下代码为任何键提取查询字符串值。 在这种情况下,提取查询字符串值的功能不正确。尝试使用以下函数提取查询字符串参数。 该函数接受任何URL。如果未传递任何URL,则它将获取页面的当前URL。
function getParameterByName(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, '\\$&');
const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
const results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}