javascript - 将变量传递到其他页面并执行 if 条件函数
问题描述
单击按钮后,我有一个 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
解决方案
代码不正确。您必须将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, ' '));
}
推荐阅读
- html - 如何使我的代码看起来像屏幕截图?http://prntscr.com/pqrax8
- javascript - 使用 javascript 调整大小时图像方向丢失
- angular - 模块嵌套组件动画
- java - 在用 java 编码的 Eclipse 中导出 JAR 文件时出错
- javascript - 我在哪里弄乱了使用 Google Books API 在我的 ajax 调用中循环的链接?
- python - ImportError:无法从“线程”导入名称“锁定”
- python - 在 dask.distributed.Variable.set 上触发回调
- java - 是否可以阻止 Gradle 添加排除的传递依赖?
- google-analytics - 从 GA 中删除自定义维度会提高页面速度吗?
- zsh - 对带有 Oa 标志的参数扩展结果使用标量或数组赋值时的不同顺序