2012-01-09 55 views
0

我需要使用jQuery更改幾個href參數,並由兩個窗體選擇選項驅動。下面的例子完美的工作,但是從文本輸入驅動,並有問題轉換爲選擇工作。選擇更改後使用jQuery更改href參數

https://stackoverflow.com/a/6540265/460322

我知道這不應該是太辛苦,但我有一個重感冒,腦今天早上就像是玉米粥!

至今不工作我的代碼:

$(window).load(function(){ 

function updateNameValue() { 
    $('#changelink').val($('#option1 option:selected').attr('href', function(i,a){ 
     return a.replace(/(field16=)[a-z]+/ig, '$1'.target.value)); 
    }); 
}); 

$('#option1').change(updateNameValue); 

updateNameValue(); 
}); 
+1

理查德,你並沒有真正讓我們瞭解您試過到目前爲止:)通常你只想用對特定改變對象的$ .attr(「href」,「newlink」)函數來改變它的href屬性。 – 2012-01-09 10:28:49

+0

給你一些你試過的代碼部分。 – 2012-01-09 10:31:01

回答

1

我結束了使用下面的代碼:

function changeHref(){ 
arg1 = $('#o1').val(); 
arg2 = $('#o2').val(); 
if (!arg1) 
    arg1 = 'default1'; 
if (!arg2) 
    arg2 = 'default2'; 
link = "link.html?arg1=" + arg1 + "&arg2=" + arg2; 
$('#updateLink').attr("href",link) 
} 

$('.linkUpdater').change(function(){ 
changeHref(); 
}); 

changeHref(); 

有了這個HTML:

<select class="linkUpdater" id="o1"> 
    <option value="">Select</option> 
    <option value="option1">Option 1</option> 
    <option value="option2">Option 2</option> 
</select> 
<select class="linkUpdater" id="o2"> 
    <option value="">Select</option> 
    <option value="optionA">Option A</option> 
    <option value="optionB">Option B</option> 
</select> 

<a id="updateLink" href="link.html">Link</a> 
0

編輯:這應該工作 - jsfiddle.net/9dGdC

首先,設置每個選項標籤的值屬性選擇欄到相應的href值,如下所示。

<select> 
<option value="www.example.com">Option 1</option> 
</select> 

然後,使用此代碼:

$('select').change(function(){ 
$('.link').attr('href',$(this).val()) 
}); 

這將改變鏈接的href屬性!

+0

謝謝,但那不是我所追求的。我確實有這樣的工作,但我實際上需要更改URL中的參數: /form/field16 = REPLACETHIS&field18 = REPLACETHIS – richardpixel 2012-01-09 10:34:40

+0

這個怎麼樣? - http://jsfiddle.net/9dGdC/ – 2012-01-09 11:14:43

+0

看起來它會工作。將現在嘗試整合並回報 - 謝謝。 – richardpixel 2012-01-09 14:18:12