Цветовая составляющая в стройных

Я изучаю svelte, и мне было интересно, есть ли в svelte обработчик цвета ошибки, если я попытаюсь ввести что-нибудь, кроме цвета, в качестве ввода?

const submitHandler = (e) => {
    valid = true;
    if(e.color != couleur){
        valid = false;
    } 
    else {
        color = e.target.value;
    }
}

person Mimi    schedule 08.04.2021    source источник
comment
Возможно, вы ищете цветовой ввод html: w3schools.com/TAGS/att_input_type_color.asp   -  person Norse    schedule 08.04.2021
comment
вы можете использовать class: директиву   -  person Shriji Kondan    schedule 08.04.2021


Ответы (1)


Хотя обычно не очень удобно запрашивать конкретные данные о цвете и не предоставлять палитру цветов, это возможно, и, возможно, у вас есть веская причина.

Вы можете использовать RegEx, чтобы проверить, предоставил ли пользователь допустимый цветовой код (при условии, что вы имеете в виду шестнадцатеричный). Вот выражение, которое выполнит проверку за вас, просто создайте с ним объект RegExp: const regex = new RegExp('^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$')

И проверьте, проходит ли значение, предоставленное пользователем, тест regex.test(yourValue) или вы просто запрашиваете шестнадцатеричный код, а не # перед ним, а затем regex.test('#' + yourValue). Также нет необходимости делать e.target.value, поскольку вы можете просто привязать ввод к переменной и использовать это для тестирования.

Вот REPL, показывающий один из возможных способов сделать это.

Не совсем ясно, какова ваша цель для этого и почему вы хотите проверить правильность ввода при отправке, но для ваших пользователей может быть лучше, если вы используете реактивное объявление для проверки действительности, как показано в этом REPL.

Или проверьте действительность только на: blur, как в этом REPL.

person JHeth    schedule 09.04.2021