JQuery: динамически изменять HREF при вводе пользователем - PullRequest
4 голосов
/ 02 ноября 2011

Я хочу изменить ссылку на ссылку на основе ввода пользователя, пока у меня есть это:

<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 ]

6 голосов
/ 02 ноября 2011

Возможно изменить href, но вы привязали слушателя изменений к полю ввода?

Это должно к уловке:

$(document).ready(function() {
    $('#pdf').change(function() {
      var newurl = $('#pdf').val();
      $('a.target').attr('href', newurl);
    });
});
1 голос
/ 02 ноября 2011

Вы забыли добавить событие изменения к входу. Хороший короткий способ сделать это:

$("#pdf").live("change keypress keyup", function() {
     $("a.target").attr("href", (this).val());
});
1 голос
/ 02 ноября 2011

вы забыли размытие или изменение события

$("#pdf").blur(URL);
0 голосов
/ 02 ноября 2011

Я не уверен, когда вы ожидаете, что ваша функция будет выполнена, поскольку вы не показываете нам, что подписались на какие-либо события и т. Д .; но это должно решить вашу проблему довольно просто:

$("#pdf").change(function() {
    $(".target").attr("href", $(this).val());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...