type="number", но все еще требует преобразования текста в число

У меня есть элемент (х) типа = число. В моей работе по проверке его значения как числа перед выполнением математических операций я пришел к выводу, что элементы типа "число", несмотря на встроенную проверку и полезные элементы управления вводом, по-прежнему присваивают свои значения в виде текста и перед выполнением требуют преобразования в число. математические операции. Мой вопрос - правда ли это или что-то не так в моем коде? Вот моя работа. Ввели номер 6.

        x = document.createElement("input");
        x.type = "number";
        x.step = "0.1";
        x.min = "0";
        x.max = "9999";
        x.defaultValue = "1";

var p = document.getElementById(x.id).value;
isThisNumber(p);


function isThisNumber(z) {
    alert(typeof z + " --- " + typeof (z));  // returns "string --- string"

    if (z.isNaN) {
        alert("it's not number");
    } else {
        alert("it's a number");  // returns false - it's a number
    }

    if (z.toFixed) {
        alert("it's a number");
    } else {
        alert("it's not a number");  // returns false - it's not a number
    }

    var a = z + z;
    alert("sum is : " + a);  // returns "66"

    var b = Number(z);
    var b2 = b + b;
    alert("sum is : " + b2);  // returns "12"
}

Ссылка: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number

0 ответов

Другие вопросы по тегам