首页 > 解决方案 > 更改文本框的值不起作用

问题描述

我的 HTML(简体):

<input class="text" type="text" id="emailbox" value="None">

注意: content1 是包含使用 PHP 从文件中检索到的电子邮件的 div 的 ID,这部分有效(它返回电子邮件)

我的Javascript:

var email = $.trim(document.getElementById('content1').textContent);
if (!email == "") { document.getElementById("emailbox").value = email; }

输入框的值完全没有变化

错误在于该行

document.getElementById("emailbox").value = email;

或使用 html

所有代码:https ://pastebin.com/5JSLzHdw

标签: javascripthtml

解决方案


我抓住了你的 Pastebin 代码,如果我将你的content1div 的内容设置为:

<div id="content1" style="display: none;">EXAMPLE@EXAMPLE.COM</div>

那么下面的代码可以替代从第 327 行开始的脚本。这完全没有样式,除了使它工作的必要代码之外,我没有更改任何代码。

<script>
  $(document).ready(function(){
    var email = document.getElementById('content1').textContent;
    var register = document.getElementById("para7");
    var login = document.getElementById("para8");
    var logout = document.getElementById("para9");

    if (email !== "") {
      register.style.display = "none";
      login.style.display = "none";

      // It's an input so you need to set VALUE, not innerHTML
      document.getElementById('mailbox').value = email;
      console.log("We are here")
    } else {
      window.location.href = "../login/";
      logout.style.display = "none";
    }

    document.getElementById("logo").addEventListener("click",function(){
      document.getElementById("homebutton").click();
    });

    document.getElementById("account").addEventListener("click",function(){
      if(!email == ""){
        document.getElementById("accountbutton").click();
      }
    });
  })
</script>

其他人正确地评论说,在文档准备好之前您不应该运行代码,因此将其包装在该 jQueryready处理程序中。

当您使用 jQuery 时,我建议您document.getElementById("whatever")使用 jQuery 方法替换所有实例,$("#whatever")因为它会使代码更简洁。


推荐阅读