复选框onclick将复选框值作为查询字符串传递给URL

时间:2012-02-25 02:32:36

标签: jquery url checkbox onclick query-string

我有几个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"/> &#160;
 Hospitals<input name="LocType" type="checkbox"   value="Hospital"/>&#160; 
 Out-Patient Centers<input name="LocType" type="checkbox"  value="Out-Patient"/>&#160; 
 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;

        });

**

1 个答案:

答案 0 :(得分:1)

这不是向服务器发送复选框的正确方法。你有一个自定义进程在另一端解析查询字符串?无论如何,更改您的地图以使用jquery $(this):

var checkboxValues = $("input[name=LocType]:checked").map(function() {return "\"" + $(this).val() + "\"";}).get().join(" OR ")