2

I have a text field like this:

<input id="num" type="text" style="width:10px"/>

I am trying to retrieve it from JavaScript as follows:

var numofnodes =parseInt(document.getElementById('num').value,10);

It is giving "", and i tried like this

var numofnodes =document.getElementById('num').value

But still I am getting "".

4
  • What is the value in the field? What were you expecting? Commented Aug 2, 2015 at 1:23
  • I am giving a number say 100 Commented Aug 2, 2015 at 1:28
  • Any chance that the document has more than one element with the id="num" attribute? Any errors in the console? Commented Aug 2, 2015 at 1:49
  • It does not contain any element with id=num, I am using visual studio so i saw by using a break point and found that the numofnodes="" Commented Aug 2, 2015 at 1:51

4 Answers 4

3

Problem seems that you are trying to read the value on page load, i.e. textbox isn't having any value given, hence you get blank:

var numofnodes = parseInt(document.getElementById('num').value, 10);
alert(numofnodes);
<input id="num" type="text" style="width:10px" />

Try with value attribute for default no. of nodes:

var numofnodes = parseInt(document.getElementById('num').value, 10);
alert(numofnodes);
<input id="num" type="text" style="width:10px" value="100" />

Sign up to request clarification or add additional context in comments.

1 Comment

I moved the statement to function body that handles submit click event it works
0

parseInt either returns an integer or NaN, it shouldn't be a "". How do you output the value that you get? Your code seems to works fine for me:

<input id="num"  type="text" style="width:100px"/>
<button id="b">log value</button>

...

document.getElementById("b").onclick = function()  {
  console.log( parseInt(document.getElementById('num').value, 10) );
}

http://codepen.io/anon/pen/LVMzxr?editors=101

2 Comments

The above code is not working, I am using the variable numofnodes in some loop,
I get NaN when I try to output it in a div. I can't seem to use the value as integer.
0

I tried your code, and for me it works correctly.

<input id="num" type="text" style="width:10px;" value=100 />

added value into attribute

$(document).ready(function() {
    // print into console as int
    var numofnodes =parseInt(document.getElementById('num').value,10);
    console.log(numofnodes);

    // print into console as string
    var numofnodes =document.getElementById('num').value 
    console.log(numofnodes);
});

Comments

0

Hmm, surprisingly enough, no one mentioned the event's built-in property for this.

event.target.valueAsNumber

will give the value as a number for inputs with type number without any conversions.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.