2012-01-09 61 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