Telephone input

When to use this component

Use the telephone input component when you need users to enter a telephone number.

When to not use this component

Do not use the telephone input component for any purpose other than entering a telephone number. Use the text input component for general text.

How it works

All telephone inputs must have visible labels aligned above the corresponding text input. Labels should be concise, direct, and written in sentence case.

Allow users to enter telephone numbers in whatever format is familiar to them. You should allow for additional spaces, hyphens and brackets, and be able to accommodate country codes if necessary.

When you ask for a telephone number, tell users why you need it and how you will use it.

HTML examples

Select the appropriate example from this page and directly integrate the HTML into your web template. You can customise these examples to align with your specific requirements, as indicated below. Refer to the layouts section for further guidance on structuring your web template.

If the component requires submission to a CRM field, ensure to replace the placeholder schema-name text in the HTML example with the actual target field schema name. Retain any prefixed or suffixed text related to the schema name. For instance, if the id attribute reads schema-name-hint in the example, ensure the replacement maintains the -hint suffix (e.g. dfe_field-hint).

This step is crucial for allowing the CRM helper framework to validate and submit data to CRM.

For single question pages

If presenting only one question on the page, designate the contents of the label as the page heading. This practice ensures users of screen readers hear the contents only once.

You will need to include an empty {% title %} block in your web template to remove the default page header and avoid duplication.

For single question pages

Replace 'schema-name' by entering your CRM field schema name.
<div class="govuk-form-group">
  <h1 class="govuk-label-wrapper">
    <label class="govuk-label govuk-label--l" for="schema-name">
      What is your telephone number?
    </label>
  </h1>
  <input class="govuk-input govuk-input--width-20" id="schema-name" name="schema-name" type="tel" autocomplete="tel">
</div>
Warning This is a basic web template page layout with a logged-in user check and does not include additional liquid items which are commonplace on a CRM Portal.
{% extends 'DfE/Layouts/2ColumnWideLeft' %}

{% block title %}{% endblock %}

{% block main %}

{% unless user %}
  <script>
    window.location.href="{{ sitemarkers['DfE/Error/AccessDenied'].url }}"
  </script>
{% endunless %}

<div class="govuk-form-group">
  <h1 class="govuk-label-wrapper">
    <label class="govuk-label govuk-label--l" for="schema-name">
      What is your telephone number?
    </label>
  </h1>
  <input class="govuk-input govuk-input--width-20" id="schema-name" name="schema-name" type="tel" autocomplete="tel">
</div>

{% endblock %}

For multiple question pages

If presenting more than one question on the page, do not set the contents of the label as the page heading.

For multiple question pages

Replace 'schema-name' by entering your CRM field schema name.
<div class="govuk-form-group">
  <label class="govuk-label" for="schema-name">
    What is your telephone number?
  </label>
  <input class="govuk-input govuk-input--width-20" id="schema-name" name="schema-name" type="tel" autocomplete="tel">
</div>
Warning This is a basic web template page layout with a logged-in user check and does not include additional liquid items which are commonplace on a CRM Portal.
{% extends 'DfE/Layouts/2ColumnWideLeft' %}

{% block main %}

{% unless user %}
  <script>
    window.location.href="{{ sitemarkers['DfE/Error/AccessDenied'].url }}"
  </script>
{% endunless %}

<div class="govuk-form-group">
  <label class="govuk-label" for="schema-name">
    What is your telephone number?
  </label>
  <input class="govuk-input govuk-input--width-20" id="schema-name" name="schema-name" type="tel" autocomplete="tel">
</div>

{% endblock %}

Error messages

An error message is displayed next to the field and in the error summary when a validation error occurs. The CRM helper framework automatically handles error messages for specific error states, therefore you do not need to add any additional error containers to your HTML. Refer to the CRM helper framework guide to understand how to validate your front-end data.

If you would like any additional advice or guidance with using these examples on Power Pages, please contact the Solutions Delivery Team.