Невозможно изменить текстовое содержимое поля ввода с помощью javascript
Я пытаюсь изменить текст в поле ввода на имя пользователя. id для поля is_username.
А в своем файле Javascript я пробовал
document.getElementById("id_username").innerHTML = "Username";
document.getElementById("id_username").value = "Username";
document.querySelector(".id_username").textContent = "Username";
Ни один не работает... Этот сайт работает на django. Я знаю, что в html для этого можно использовать placeholder, но эти поля создаются с помощью тегов django.
Есть идеи?
Я попробовал использовать эти методы для обычного поля ввода html и также не добился успеха.
Хотелось бы отметить, что когда вы пробовали свой queryselector. Вы использовали ".id_username", это выбирает класс, который так называется, а не id.
Вы можете попробовать сохранить выбранный элемент в переменной, а затем выполнить innerHTML/textcontent.
const stubbornInput = document.getElementById("id_username");
stubbornInput.innerHTML = 'Whatever you want';
У меня были случаи, когда это срабатывало, но когда я шел прямо на вещь, это не помогало. Не уверен, что это поможет или почему это сработало для меня раньше, но попробовать стоит :)
Вы можете попробовать следующее:
document.querySelector('input[name="id_username"]').value = 'Username';
<input type="text" name="id_username" id="id_username" placeholder="Your text">
ваш текстовый ввод имеет ID username
, в вашем javascript написано id_username
попробуйте этот ввод и javascript.
document.getElementById("username").value = "your_value_here";
<input type="text" name="username" id="username">
Если это не работает, попробуйте использовать JQuery.
$("input[name=username]").val("hello_world")
ок ниже правильный ответ:
Мой основной js файл вызывал проблему, поэтому он не работал у меня раньше. После того, как я создал пустой js файл для этой цели, все заработало.
document.querySelector('#id_username').value = 'username' ;
document.querySelector('#id_username').addEventListener('click', function () {
document.querySelector('#id_username').value = '';
})
Нашел более простой способ сделать это:
document.querySelector('#id_username').setAttribute('placeholder', 'Username');