У меня есть текстовое поле, значение которого я хочу установить на основе внутреннего текста тега привязки. Другими словами, когда кто-то нажимает на этот якорь:
<a href = "javascript:void();" class = "clickable">Blah</a>
Я хочу, чтобы мое текстовое поле было заполнено текстом «Бла». Вот код, который я сейчас использую:
<script type = "text/javascript">
$(document).ready(function(){
$("a.clickable").click(function(event){
$("input#textbox").val($(this).html());
});
});
</script>
И в моем html есть список якорных тегов с классом «кликабельный» и одно текстовое поле с идентификатором «текстовое поле».
Я заменил приведенный выше код кодом, чтобы просто показать предупреждение javascript с помощью $ (this) .html (), и, похоже, оно показывает правильное значение. Я также изменил $ (this) .html (), чтобы он был жестко закодированной строкой, и он правильно устанавливает значение текстового поля. Но когда я их объединяю, текстовое поле просто очищается. Что я делаю не так?

Я написал этот фрагмент кода, и он отлично работает:
<a href = "#" class = "clickable">Blah</a>
<input id = "textbox">
<script type = "text/javascript">
$(document).ready(function(){
$("a.clickable").click(function(event){
event.preventDefault();
$("input#textbox").val($(this).html());
});
});
</script>
Может быть, вы забыли присвоить ссылкам название класса «интерактивный»?
Просто обратите внимание, что префикс tagName в селекторе медленнее, чем просто использование идентификатора. В вашем случае jQuery получит все входные данные, а не просто использует getElementById. Просто используйте $ ('# textbox')
Этот ответ, вероятно, был бы лучше в качестве комментария к вопросу.
Следуя за красным квадратом: вы не должны использовать в атрибуте href код javascript, например "javascript: void ();" - это неверно. Лучше использовать, например, href = "#", а затем в обработчике событий в качестве последней команды: "return false;". И что еще лучше - используйте в href правильную ссылку - если у пользователя отключен javascript, веб-браузер переходит по ссылке - в этом случае ваша веб-страница должна перезагрузиться с вводом, заполненным значением этой ссылки.
Чтобы назначить значение текстового поля с идентификатором «текстовое поле» в JQuery, выполните следующие действия.
$ ("# текстовое поле"). get (0) .value = "blah"
Я просто использовал этот синтаксис для решения той же проблемы, и, как ни странно, он сработал! Благодарность!
Чтобы назначить значение текстового поля с идентификатором ёtextboxё в jQuery, выполните следующие действия.
$("#textbox").val('Blah');
Я считаю, что человек, задавший вопрос, уже знал это, как вы можете видеть в его коде.
Спасибо за это. По вашему коду я смог определить, что пошло не так. Это была проблема с пробелами (у меня был фактический текст внутри тега привязки на отдельной строке).