Elements for entering numbers

Simple numeric field

An element input with the type=”number” attribute is used to enter numbers. It creates a numeric field that we can customize with the following attributes:

  • min: minimum allowed value
  • max: maximum allowed value
  • readonly: read-only
  • required: indicates that this field must have a value
  • step: the value to increase the number in the field
  • value: default value

Using a numeric field:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Numeric field in HTML5</title>
</head>

<body>
    <form>
        <div class="form-group" style="margin-bottom: 15px;">
            <label for="age">Age: </label>
            <input type="number" step="1" min="1" max="99" value="10" id="age" name="age" />
        </div>
        <div class="form-group" style="margin-bottom: 15px;">
            <button type="submit">Submit</button>
        </div>
    </form>
</body>

</html>

Here, the numeric field defaults to 10 ( value=”10″), the minimum allowed value that we can enter is 1, and the maximum allowed value is 100. And the attribute step=”1″sets the value to increment by one.

The rendering of this field may differ depending on the browser:

But as a rule, most modern browsers, except IE 11 and Microsoft Edge, have arrows on the right in the input field to increase / decrease the value by the amount specified in the step attribute.

As with the textbox, we can attach a datalist here with a range of possible values:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Numeric field in HTML5</title>
</head>

<body>
    <form>
        <p>
            <label for="price">Price: </label>
            <input type="number" list="priceList" step="1000" min="3000" max="100000" value="10000" id="price"
                name="price" />
        </p>
        <p>
            <button type="submit">Submit</button>
        </p>
    </form>
    <datalist id="priceList">
        <option value="15000" />
        <option value="20000" />
        <option value="25000" />
    </datalist>
</body>

</html>

Slider

The slider represents a scale on which we can select one of the values. An element input with the type = “range” attribute is used to create a slider . In many ways, a slider is like a simple field for entering numbers. It also has attributes min, max, step and value:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Number slider in HTML5</title>
</head>

<body>
    <form>
        <p>
            <label for="price">Price Range:</label>
            1<input type="range" step="1" min="0" max="100" value="10" id="price" name="price" />100
        </p>
        <p>
            <button type="submit">Submit</button>
        </p>
    </form>
</body>

</html>