Надо проверить, будет ли переведённое в десятичную систему число равно самому себе, если его обратно перевести в ту же систему счисления.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Перевод из одной системы счисления в другую</title>
<meta http-equiv="X-UA-Compatible" content=" IE=edge, chrome=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
</head>
<body>
<form>
Перевести <input type="text" name="num" size="8">
из системы <input type="text" name="base_from" size="8" value="2">
в систему <input type="text" name="base_to" size="8" value="2">
<input type="button" value=" = " onclick="convert(this.form)">
<input type="text" name="amount" size="15">
</form>
<script>
function convert(form) {
//получаем данные из поле ввода, преобразуя их в Integer
base_from = parseInt(form.base_from.value);
base_to = parseInt(form.base_to.value);
//преобразуем данные по основанию base_from в десятичную систему
num = parseInt(form.num.value, base_from);
if(num.toString(base_from) !== form.num.value) {
form.amount.value = "#ERROR";
throw new RangeError("Invalid number");
}
//преобразуем данные из десятичной в систему по указанному основанию base_to
amount = num.toString(base_to);
//выводим результат
form.amount.value = amount
}
</script>
</body>
</html>