2012-02-25 98 views
0

我想實現這個使用jQuery,而不是內聯,但它不工作,在線工作正常。另外一個原因,我想使用jQuery是,如果用戶選擇多於一個複選框,該URL應該與任何已經存在+ OR「第二複選框值」這樣的附加: 的「http:// mysite的/網站/開發/非接觸我們/頁/ LocationSearchTestPage.aspx?S = bcs_locations & K =辦公室或醫院」 的空間和盈方以下或罰款.. 我怎樣才能做到這一點?有人可以幫我嗎?的onclick複選框追加複選框值到URL

Offices<input name="LocType" type="checkbox" 
value="Office" onclick="window.location='http://mysite/sites/dev/contact-us/Pages/LocationSearchTestPage.aspx?s=bcs_locations&k=Office'; return true;"> &#160; 
    Hospitals<input name="LocType" type="checkbox" 
value="Hospital" onclick="window.location='http://mysite/sites/dev/contact-us/Pages/LocationSearchTestPage.aspx?s=bcs_locations&k=Hospital'; return true;"> &#160; 
    Facilities<input name="LocType" type="checkbox" 
value="Facility" onclick="window.location='http://mysite/sites/dev/contact-us/Pages/LocationSearchTestPage.aspx?s=bcs_locations&k=Facility'; return true;"> 
+0

你已經發布[或多或少相同的問題(http://stackoverflow.com/questions/9437952/onselect-checkbox-add-selected-value-to-the-url-as-querystring),和有人煞費苦心地回答它,然後有兩個人已經回答了[你的其他問題](http://stackoverflow.com/questions/9439587/onclick-checkbox-event)。 – nnnnnn 2012-02-25 05:17:28

回答

1

綁定到複選框上的更改事件。單擊時讀取當前的複選框值,然後讀取所有其他相關複選框。將您的基本網址追加到您的自定義查詢字符串併發瘋。 :)

這不是測試,但我希望這是一個很好的起點。

var baseUrl = 'http://mysite/sites/dev/contact-us/Pages/LocationSearchTestPage.aspx?s=bcs_locations&k='; 

$(document).ready(function() { 

    // listen to change event (customize selector to your needs) 
    $('input[type=checkbox]').change(function (e) { 

     e.preventDefault(); 

     if ($(this).is(':checked')) { 

      // read in value 
      var queryString = $(this).val(); 

      // loop through siblings (customize selector to your needs) 
      var s = $(this).siblings(); 
      $.each(s, function() { 

       // see if checked 
       if ($(this).is(':checked')) { 

        // append value 
        queryString += ' OR ' + $(this).val(); 
       } 
      }); 

      // jump to url 
      window.location = baseUrl + queryString; 
     } 
    }); 

}); 
+0

非常感謝,第二部分沒有工作。這是它沒有看到兄弟姐妹是否被檢查,如果他們是,它沒有抓住價值和追加到URL的URL ...你能幫我弄明白嗎? – 2012-02-25 13:33:22

+0

@brian這真棒!很棒。想知道如果你可以幫助我,而不是自動重定向複選框,我想在選中複選框後重定向點擊。你會如何去做這件事? – 2016-04-06 19:16:59

0

您可以試試這個。

HTML

<input name="LocType" type="checkbox" value="Office" /> 
<input name="LocType" type="checkbox" value="Hospital" /> 
<input name="LocType" type="checkbox" value="Facility" /> 

JS

假設你有你想要創建的所有附加到由OR

分隔的URL的檢查LOCTYPE複選框值的網址上點擊一個按鈕什麼的
var url = "http://mysite/sites/dev/contact-us/Pages/LocationSearchTestPage.aspx?s=bcs_locations"; 

$('button').click(function(){ 
    //This will get the array containing values of checked LocType checkboxes 
    var checkedLocTypeValues = $('input[name=LocType]:checked').map(function(){ 
     return this.value; 
    }); 

    //Use Array.join() method to join the array elements by " OR " 
    url = url + "&k=" + checkedLocTypeValues.join(" OR "); 

    //Now you can use url variable which has all the checked LocType checkboxes value 
} 

jQuery map()參考 - http://api.jquery.com/jQuery.map/