Я добавляю проверку в некоторые поля ввода.
Я добавил в поля атрибут данных validators
, чтобы указать проверки, которые должны быть выполнены.
<input type="text" name="duration" data-validators="InputPresence">
Мой JS выглядит как
import InputPresence from '../modules/validators/input_presence'
...
validateForm() {
...
InputPresence.validate
}
А input_presence.js
export default {
validate(something) {
console.log('validating .....')
}
}
И я правильно получаю в консоли
проверка .....
Теперь мне нужно вызывать валидатор динамически в соответствии с атрибутом данных. Однако я не знаю, как получить имя модуля для вызова из строки.
validateForm() {
...
let validator = field.getAttribute('data-validators')
???.validate
}
Я попытался window[validator]
, как предлагается в другом вопросе, но, похоже, это не сработало.
Есть предложения?
PS - Я думаю, что это не относится к проблеме, но я использую StimulusJS.