为什么此代码不返回数字值?

时间:2019-08-21 22:03:43

标签: javascript html

我正在尝试从数字文本框中检索值,但无法获取输入的值。

var doc_repo = "TEST"
alert(doc_repo)
<input type="number" id="sqlentry" name="repository">

这将返回TEST

我在字段中输入数字,但是当我单击按钮获取值时,我什么也没得到。

var doc_repo = document.getElementById("sqlEntry").value;
alert(doc_repo)
<input type="number" id="sqlentry" name="repository">

我希望得到一个显示的数字,但我什么也没得到。

2 个答案:

答案 0 :(得分:1)

您遇到的一些错误:

  • 它是sqlentry而不是sqlEntry,因为getElementById方法的选择器区分大小写。
  • 我在字段中输入了一个数字,但是当我单击按钮以获取值时,我什么也没得到”“我在代码中看不到任何button,您会如果要在单击按钮后获取值,则需要一个单击事件侦听器(附加到button上)。

这是一个演示:

/**
* @const doc_repo the input element.
* @const btn the button on which you click to get the input's value.
**/
const doc_repo = document.getElementById("sqlentry"),
  btn = document.getElementById("btn");

/** attach click event listener to the button **/
btn.addEventListener('click', () => console.log(doc_repo.value)); /** log the value **/

/** you could use "alert" method instead of "console.log", I didn't use it to maintain a better user experience on this SO page **/
<input type="number" id="sqlentry" name="repository" />
<button id="btn">get value</button>

这可以解决问题,但是如果input为空,则会得到空结果!要绕过这一点,我们可以检查input是否具有值,否则我们将打印0

const doc_repo = document.getElementById("sqlentry"),
  btn = document.getElementById("btn");

btn.addEventListener('click', () => console.log(doc_repo.value || 0));
/** 
 * the "||" operator returns the left operand if it's true otherwise it returns the right operand
 * as empty string is falsy the "||" operator returns 0 when the input is empty. 
 **/
<input type="number" id="sqlentry" name="repository" />
<button id="btn">get value</button>

答案 1 :(得分:0)

注意大小写

var doc_repo = document.getElementById("sqlentry").value;
alert(doc_repo)