使用javascript/jQuery根据url值自动选中复选框

使用javascript/jQuery根据url值自动选中复选框,javascript,jquery,checkboxlist,Javascript,Jquery,Checkboxlist,有没有办法或者可以使用javascript/jQuery实现这一点 基于链接URL:第一个将检查类型A和类型B,第二个示例将检查类型D ?type=A&type=C or ?type=D 我目前的表格: <form name="input" action="" method="post" ><br /> Select Type: <br /> <input type="checkbox" name = "type" value="A" />

有没有办法或者可以使用javascript/jQuery实现这一点

基于链接URL:第一个将检查类型A和类型B,第二个示例将检查类型D

?type=A&type=C or ?type=D
我目前的表格:

<form name="input" action="" method="post" ><br />
Select Type: <br />
<input type="checkbox" name = "type" value="A" /> A <br />
<input type="checkbox" name = "type" value="B"  /> B <br />
<input type="checkbox" name = "type" value="C"  /> C <br />
<input type="checkbox" name = "type" value="D" /> D <br /> <br />
<input type="submit" value="Submit" />

选择类型:
A
B
C
D

有什么建议吗?

这样做:

var i = document.location.href.lastIndexOf('?');
var types = document.location.href.substr(i+1).replace(/type=/g,'').split('&');
$('input[name="type"]').prop('checked',function(){
     return $.inArray(this.value,types) !== -1;
});
说明:

假设url是“
http://sample.com?type=A&type=C
”。然后:

  • i
    是“
    ”登录该url的索引
  • 将从url中剪切
    type=A&type=C
    部分。切割后,我们将获得以下字符串:

    "type=A&type=C"
    
  • 从上述字符串中删除“type=”部分:

    "A&C"   //after replace
    
  • 将该字符串拆分为数组:

     ["A","C"]
    
  • 检查当前
    复选框的值是否在
    [“A”,“C”]
    数组中。如果是,则
    选中
    复选框(
    .prop('checked',true)

这显示了使用javascript检查查询字符串参数的解决方案。顶部还有一个链接,指向使用JQuery提供解决方案的可能方法

确定querty字符串参数后,可以使用jQuery选中该框(如中所述):


您需要服务器生成的页面来执行此操作…使用
窗口的
搜索
。位置
仅包含
type=A&type=C
,框A、B和C返回为与您的代码一起选中的状态。@ohgod为什么这是正确的。我刚刚忘记了这些属性)我已经测试了您的代码,但它没有按预期工作。我在本地环境中使用
http://localhost/dev/so/index.php?type=A&type=C
,并选中复选框
B、C和D
。通过将窗口的位置模拟为字符串,并根据该字符串测试代码,我能够在JSFIDLE中重现这一点@哦,为什么我更新了我的代码,添加了`==-1`在
inaray
@之后,在这种情况下,您可以将
+
符号替换为
空格
。在
replace
split
之间添加类似的内容:
.replace(/type=/g',).replace(/++/g',).split(
),或将
decodeURI
函数应用于
?type=A+B&type=C+D
字符串。
$('input[value="A"]').prop("checked", true);