将变量传递到其他页面并执行if条件函数

时间:2019-04-09 10:33:43

标签: javascript jquery function

单击按钮后,我有一个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

1 个答案:

答案 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, ' '));
    }