Hossein Dara
Hossein Dara

Reputation: 39

" document.getElementById("").value" dosn't work in my visual studio code

I am new in JS, and I tried to get my input's value by the code shown below :

var num1 = document.getElementById("num1").value

But Intellisense doesn't show me "value". When I write ".va", it shows me "nodeValue" and it doesn't show me "value" in the autocomplete options at all.

var lbl = document.getElementById("lblResult");
lbl.innerHTML = "Ok";

function Sum() {
  var num1 = document.getElementById("num1").value;
  var num2 = document.getElementById("num2").value;

  num1 = parseInt(num1);
  num2 = parseInt(num2);
  var sum = num1 + num2;
  lbl.innerHTML = sum;
};
<h2 id="lblResult">salam</h2>
Number 1 : <input type="number" id="num1" />
<br /> Number 2 : <input type="number" id="num2" />
<br />
<input type="submit" onclick="Sum();" value="sum">

Anyone can help me?

Upvotes: 0

Views: 2130

Answers (1)

Ashish Yadav
Ashish Yadav

Reputation: 2008

You might need to indicate the type of element because document.getElementById can also return other element that will have no value attribute. For example h2 element with id: lblResult. VsCode uses TS for it's intellisense.

Use below JSDoc comment with the type.

var lbl = document.getElementById("lblResult");
lbl.innerHTML = "Ok";

function Sum() {
  /**
   * Indicate your element type will be HTMLInputElement
   * @type HTMLInputElement
   */
  var num1 = document.getElementById("num1").value;
  var num2 = document.getElementById("num2").value;

  num1 = parseInt(num1);
  num2 = parseInt(num2);
  var sum = num1 + num2;
  lbl.innerHTML = sum;
};

More on JSDoc: JSDoc reference

Upvotes: 2

Related Questions