parseInt not converting decimal to binary?

parseInt(number, base) returns decimal value of a number presented by number parameter in base base.

And 11 is binary equivalent of 3 in decimal number system.

var a = {};

window.addEventListener('input', function(e){
  a[e.target.name] = e.target.value;
  console.clear();
  console.log(  parseInt(a.number, a.base)  );
}, false);
<input name='number' placeholder='number' value='1010'>
<input name='base' placeholder='base' size=3 value='2'>

Use toString() instead of parseInt:

11..toString(2)
var str = "11";
var bin = (+str).toString(2);
console.log(bin)

According JavaScript's Documentation:

The following examples all return NaN:

parseInt("546", 2); // Digits are not valid for binary representations


As stated in the documentation for parseInt: The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

So, it is doing exactly what it should do: converting a binary value of 11 to an integer value of 3.

If you are trying to convert an integer value of 11 to a binary value than you need to use the Number.toString method:

console.log(11..toString(2)); // 1011