Jquery:动态更改用户输入的href

时间:2011-11-02 11:36:39

标签: jquery jquery-selectors

我想根据用户的输入更改链接的href,到目前为止我有这个:

<input type="text" id="pdf" value="Enter ID" />
<a class="target" href="#">Download</a>

function URL() {
var newurl = $('#pdf').val();
$('a.target').attr('href', newurl);
}

然而,这不符合预期。我只想将下载URL更改为输入文本的值。因此,如果我写“123”链接将转到“123”,但没有任何改变。

可能我错过了什么,我已经阅读了关于动态更改href的答案,但我有点卡在这里。要么这是不可能的,要么我做错了。

由于

编辑: 我错误地离开了这个功能,忘了把它叫做

编辑2: 它现在从文本框中获取值,但不会动态更改。

4 个答案:

答案 0 :(得分:6)

可以改变href,但是你是否已将更改侦听器绑定到输入字段?

这应该是诀窍:

$(document).ready(function() {
    $('#pdf').change(function() {
      var newurl = $('#pdf').val();
      $('a.target').attr('href', newurl);
    });
});

答案 1 :(得分:1)

你忘记了模糊或改变事件

$("#pdf").blur(URL);

答案 2 :(得分:1)

您忘记将更改事件添加到输入中。一个很好的简短方法是:

$("#pdf").live("change keypress keyup", function() {
     $("a.target").attr("href", (this).val());
});

答案 3 :(得分:0)

我不确定您希望您的功能何时执行,因为您没有告诉我们您已订阅任何活动等;但这应该简单地解决你的问题:

$("#pdf").change(function() {
    $(".target").attr("href", $(this).val());
});