我有几个chechbox并且点击其中任何一个,应该触发一个捕获复选框值的事件并以查询字符串的形式传递给URL。
querystring应该是这样的: mysite.com/result.aspx?k=Hospital OR Office OR Facility 如果一个接一个地检查所有三个复选框..所以第一次检查医院时,它将重定向到mysite.com/result.aspx?k=Hospital并且第二次检查办公室复选框,它将添加到现有URL价值如mysite.com/result.aspx?k=Hospital OR Office等......
<div class="MyOptions">
Offices<input name="LocType" type="checkbox" value="Office"/>  
Hospitals<input name="LocType" type="checkbox" value="Hospital"/> 
Out-Patient Centers<input name="LocType" type="checkbox" value="Out-Patient"/> 
Facilities<input name="LocType" type="checkbox" value="Facility"/>
</div>
**这不起作用..任何人都可以指导我。我对Jquery不是很好..
$(document).ready(function() {
var url = 'http://mysite.com/results.aspx';
$(".MyOptions input").click(function() {
var urlValues = window.location.href.split("k=(")[1];
urlValues = urlValues.substring(0,urlValues .length - 1);
var checkboxValues = $("input[name=LocType]:checked").map(function() {return "\"" + this.value + "\"";}).get().join(" OR ")
if (urlValues.length > 0)
urlValues += " OR " + checkboxValues;
window.location.href = "http://mysite.aspx/result.aspx?k=" + urlValues;
});
**
答案 0 :(得分:1)
这不是向服务器发送复选框的正确方法。你有一个自定义进程在另一端解析查询字符串?无论如何,更改您的地图以使用jquery $(this):
var checkboxValues = $("input[name=LocType]:checked").map(function() {return "\"" + $(this).val() + "\"";}).get().join(" OR ")