为什么文本不出现?

时间:2018-08-27 00:27:58

标签: javascript html css

我试图制作一个“ MEME Generator”,但由于当我:

上传>输入文本>提交

所有JS更改均恢复为默认状态。我可能只是想念一些东西,所以如果您能帮助我,我会帮上大忙

function topContent() {
  var topText = document.getElementById("userTopText").value;
  document.getElementById("topText").innerHTML = topText;
}

function changeImg() {

  document.getElementById("frame").style.background = "url(assets/Background.jpg    )";
}
body {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
}

#frame {
  width: 20%;
  height: 60%;
  color: white;
  background-size: 20% 60%;
  background-repeat: no-repeat;
}

#frame h1 {
  text-align: center;
}
<div id="frame" width="20%" height="60%">
  <h1 id="topText"></h1>
</div>

<button onClick="changeImg()">Upload</button>

<form>
  <input type="text" id="userTopText">
  <button type="submit" onClick="topContent()">Enter</button>
</form>

4 个答案:

答案 0 :(得分:1)

问题与<form>提交的默认操作有关,是重新加载页面,从而删除了图像。在您的情况下,我将使用JQuery库并阻止表单执行该默认操作。

请参阅此堆栈溢出答案: Stop form refreshing page on submit

答案 1 :(得分:0)

您的问题是您有以下代码:

end

这会将文本变成白色。更改此设置将解决您的问题。

答案 2 :(得分:0)

想通了!

该:

<button type="submit" onClick="topContent()">Enter</button>

由于某种原因,type =“ submit”正在刷新页面

答案 3 :(得分:0)

更改框架样式,以使文本不是白色:

#frame {
    width: 20%;
    height: 60%;
    color: black;
    background-size: 20% 60%;
    background-repeat: no-repeat;
}

更改表格,以便按钮返回。

<form>
    <input type="text" id="userTopText">
    <button onClick="return topContent()">Enter</button>
</form>

确保函数返回false,这告诉表单不要再提交。

function topContent() {
    var topText = document.getElementById("userTopText").value;
    document.getElementById("topText").innerHTML = topText;
    return false;
}