我有一些不同的搜索参数,在不同的类别中可以是动态的。我的问题是,我需要使用jquery检查是否单击了复选框,然后更改URL以便插入参数。
我的一个搜索参数框的HTML是:
<h3>{heading}</h3>
<div class="{class} {parameter} searchParam" name="class">
<ul>
<li><input type="checkbox" name="{name}" value="{value}" />{value}</li>
</ul>
</div>
每个参数都有“searchParam”作为类 - 参数的另一个参数是动态的。
我需要为每个.searchParam创建一个URL部分,以便例如3个搜索参数检查了值(li中的输入),然后URL就是这样:
http://domain.com/param1=value1,value2,value3.param2=value1,value2.param2=value1
这可能吗?
答案 0 :(得分:0)
我这样解决了:
$(document).ready( function() {
var params = [];
$(".searchParam").click(function(){
params = [];
$(".searchParam").each(function(index){
var name = $(this).attr('name');
var values = $('.'+ name +' input:checkbox:checked').map(function (){ return this.value }).get();
if(values.length > 0){
params.push({'name': name, 'values': values });
}
});
var curUrl = $(location).attr('href');
var newUrl = curUrl.split('/');
var urlNumPar = newUrl.length - 1;
var redirectURL = '';
$(newUrl).each(function(index, val){
if( index == urlNumPar)
{
} else {
redirectURL += val+"/";
}
});
$(params).each(function(index, val){
if(params.length > 1 && index > 0)
{
redirectURL += ".";
}
redirectURL += val['name'] + "=" + val['values'];
});
window.location.href = redirectURL;
});
});