2010-06-19 72 views
5

頁面我想寫一個小片段,允許用戶去導航到)一個新的URL,基於用戶選擇在選項選擇控制。jQuery導航到選擇選項

<script type="text/javascript"> 
/* <[CDATA[ */ 
jQuery.noConflict(); 
jQuery(document).ready(function(){ 
    var id = jQuery($this).val(); 
    var url = some_Lookup_func(id); 
    jQuery("#the_id").change(function() { /* how do I navigate the browser to 'url' ?*/); 
}); 
/* ]]> */ 
</script> 

注:這不是AJAX的行爲我想,我希望瀏覽器的行爲,彷彿你已經點擊了一個鏈接。我之前做過這些,但我忘記了如何去做。我查看了jQuery文檔,並且load()似乎沒有這樣做 - 因爲我不想將內容放在當前頁面中 - 我想:

  1. 轉到全新頁面
  2. 傳遞參數的URL,我導航到(如所選項目的ID

回答

6

jQuery的

var YourParam="sunshine"; 

$(document).ready(function() { 
    $("#goto").change(function(){ 
    if ($(this).val()!='') { 
     window.location.href=$(this).val()+"?param="+YourParam; 
    } 
    }); 
}); 

HTML

<form action="whatever.shtml" method="post" enctype="multipart/form-data"> 
    <select id="goto"> 
    <option value="">Go somewhere...</option> 
    <option value="http://cnn.com/">CNN</option> 
    <option value="http://disney.com/">Disney</option> 
    <option value="http://stackoverflow.com/">stackoverflow</option> 
    <option value="http://ironmaiden.com/">Iron Maiden</option> 
    </select> 
</form> 
3
window.location.href = 'http://example.com/newlocation?param1=value1'; 

這也適用於相對URL:

window.location.href = '/newlocation?param1=value1'; 
+0

謝謝你,我發現這是非常有用的! – alekwisnia 2012-12-05 15:52:38

0

要簡單地重新加載頁面,請將window.location.href設置爲您的URL。要傳遞參數,請構建一個「name = value & name = value」的字符串並將其粘貼到最後。 jQuery提供了一個「序列化」的方法,可以很容易地做到這一點(就像很難開始)。

1

我想這是這樣做的(基礎上格特的答案)的最佳方式:

$(document).on('change','#goto', function(event){ 
    if ($(event.target).val()!='') { 
     window.location.href=$(event.target).val(); 
    } 
    });