繁体   English   中英

无法使用 javascript 更改输入字段文本内容

[英]Unable to change input field text content with 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 可以使用占位符来实现这一点,但这些字段是使用 django 标签创建的。

有任何想法吗?

我确实尝试在正常的 html 输入字段上使用这些方法,但也没有运气。

网页:

{% extends 'display_words.html' %}

{% block content %}
<div class="flex-container">
  <div class="content">
      <div class="display-box">
            <!-- <p>Please login to see this page.</p> -->
          {% if form.errors %}
            <p>Your username and password didn't match. Please try again.</p>
          {% endif %}

          {% if next %}
            {% if user.is_authenticated %}
              <p>Your account doesn't have access to this page. To proceed,
              please login with an account that has access.</p>
            {% else %}
              <p>Please login to see this page.</p>
            {% endif %}
          {% endif %}

          <form method="post" action="{% url 'login' %}">
            {% csrf_token %}
            <table>
              <tr>
                <!-- <td>{{ form.username.label_tag }}</td> -->
                <td>{{ form.username }}</td>
              </tr>
              <tr>
                <!-- <td>{{ form.password.label_tag }}</td> -->
                <td>{{ form.password }}</td>
              </tr>
            </table>
            <input id="login-button" class="button" type="submit" value="login">
            <input type="hidden" name="next" value="{{ next }}">
          </form>

          {# Assumes you setup the password_reset view in your URLconf #}
          <p id="lost-password-link"><a href="{% url 'password_reset' %}">Lost password?</a></p>
        </div>  
      </div>
  </div>
{% endblock %}

我创建了一个测试 html 文件,它也不起作用:代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8"/>
    <title>Words & Phrases</title>

    
  </head>

  <body>

    <input type="text" id=“id_username”>

<script>

    document.querySelector('#id_username').textContent = 'username';

</script>

</body>

你可以试试这个:

 document.querySelector('input[name="id_username"]').value = 'Username';
 <input type="text" name="id_username" id="id_username" placeholder="Your text">

想指出的是,当您尝试查询选择器时。 您使用了“.id_username”,这会选择一个名为 class 的 ZA2F2ED4F8EBC2CBB4C21DZ,而不是 id。

您可以尝试将所选元素存储在变量中,然后运行 innerHTML/textcontent。

const stubbornInput = document.getElementById("id_username");

stubbornInput.innerHTML = 'Whatever you want';

我曾经遇到过这样的情况,但是,直截了当的事情没有。 不知道它是否有帮助或为什么它以前对我有用,但值得一试:)

您的文本输入具有 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', '用户名');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM