jQuery使用表单答案更改URL

时间:2012-12-17 20:54:56

标签: jquery

我有一个关于更改包含某些表单信息但可能导致重复的URL的问题。用一句话很难解释。所以我有一个表单用于搜索并尝试使用下拉列表进行分页。 URL将是这样的:

http://www.site.com/page/?name=Amanda&state=WA&approved=-2&form_date=&submit=Submit

...并且下面的代码添加了页面调用(例如)

http://www.site.com/page/?name=Amanda&state=WA&approved=-2&form_date=&submit=Submit&page=2

然而,如果他们再次更改页面,它将复制页面调用,因此它将

http://www.site.com/page/?name=Amanda&state=WA&approved=-2&form_date=&submit=Submit&page=2&page=2

我知道如何通过PHP修复它,但如果可能的话我想将它保存在jQuery中。下面是我的jQuery调用。我是否必须进行indexOf调用?这是唯一的方法吗?我以为还有另外一种方式所以我想我会问。

$('#page').change(function(){
    var pathName = window.location.search;
    var page_change = $('#page option:selected').val();
    if(pathName == ""){
        window.location.replace("?page="+page_change);
    } else {
        window.location.replace(pathName+"&page="+page_change);
    }

});

感谢!!!

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

$('#page').change(function(){
    var pathName = window.location.search;
    var page_change = $('#page option:selected').val();
    if(pathName == ""){
        window.location.replace("?page="+page_change);
    } else {
        path_arr = pathName.substr(1).split('&');
        new_path = new Array();
        for(p in path_arr) {
            if (path_arr[p].indexOf('page') == -1) {
                new_path.push(path_arr[p]);
            }
        }
        window.location.replace('?' + new_path.join() + '&page=' + page_change);
    }
});