如何为输入字段设置默认值但可更改的值?

时间:2017-11-11 10:34:51

标签: javascript html

我目前正在处理Project Euler网站的一些用户输入,并且希望每个问题都有一个输入字段,其默认值是网站上问题的默认值,这样您就可以按提交并获得答案,但我也希望它可以更改,以便您可以使用该功能查找任何限制编号的答案。



var problem1El = document.getElementById("problem1").value;
var problem1buttonEl = document.getElementById("problem1button");
problem1buttonEl.addEventListener("click", findSum);

<p>Problem 1</p><input type="text" id="problem1"><button id="problem1button">Submit</button><a href="https://projecteuler.net/problem=1" target="_blank" class="links">Problem</a><p id="answer1"></p>
&#13;
&#13;
&#13;

这里的函数 findSum 是我在变量 problem1El 的帮助下计算答案的地方。我的问题是,如果我将HTML或JS中的value属性设置为f.ex&#34; 1000&#34;,它不会再根据输入而改变。 所以这两个都没有:

input type="text" value="1000" id="problem1"

也不是:

var problem1El = document.getElementById("problem1").value = "1000";

允许我给它一个可更改的默认值。我已经考虑过使用占位符,但是对于像600851475143这样的数字或者问题8中的荒谬数字来说这是不切实际的。

非常感谢任何帮助,祝你有愉快的一天!

1 个答案:

答案 0 :(得分:1)

要为输入字段设置默认值,您必须设置&#34;值&#34;该输入的属性如下。 获取输入值并将其放入js变量的方式是静态的,因此,一旦你接受它,它就不会再被更新了。为了始终保持最新价值,您必须在内部中使用findSum函数。 我不知道你想在findSum函数中做什么,所以我只是在结果框中回显提交的值。

&#13;
&#13;
var problem1El = document.getElementById("problem1");
document.getElementById("problem1button").addEventListener("click", findSum);

function findSum(){
  var v = problem1El.value;
  document.getElementById("result").innerHTML = v;
}
&#13;
<input type="number" id="problem1" value="1000"/>
<button id="problem1button">Submit</button>

<p>Result is: <span id="result"></span></p>
&#13;
&#13;
&#13;