¿Cómo puedo validar la entrada de un html5 Datalist?

Me gustaría saber cómo puedo validar el valor de entrada que proviene de unDatalist. Quiero decir, si tengo unDatalist donde el usuario puede comenzar a escribir un valor y luego elegirlo desde elDatalist, pero el usuario decide no elegir ningún valor de la lista y envía el formulario con el valor incompleto, el valor enviado será incorrecto.

Pensé en iterar sobre todos los elementos de laDatalist pero creo que no puede ser una buena idea si elDatalist tiene más de 1.000 valores y no conozco otra forma de validarlo.

Aquí hay un ejemplo deDatalist que voy a usar:

<input type="text" list="colours">

<datalist id="colours">
    <option value="Red" data-id="1">
    <option value="Blue" data-id="2">
    <option value="Green" data-id="3">
    <option value="Black" data-id="4">
    <option value="White" data-id="5">
</datalist>

Respuestas a la pregunta(3)

Su respuesta a la pregunta