Здравствуйте!
Скажите, пожалуйста, как можно исправить вот такую ошибку: Uncaught TypeError: y is not a function
function test($t, y) {
y($.trim($($t).val()));
}
function validateTest(z){
alert(z);
}
$('.requed').on('change', function() {
test('#'+$(this).attr('id'), 'validate'+$(this).attr('data-var'));
});
Я так понимаю ошибка возникает при попытке вызова значения как функции. Мне же нужно именно так. Полей у меня множество и исходя из значения ('validate'+значение из data-var) пришедшего из поля, будет вызываться определенная функция.
Ответ
В зависимости от контекста исполняемой функции. Если все находится в контексте window, то можно написать так:
function test($t, y) {
var func = window[y];
func($.trim($($t).val()));
}
function validateTest(z){
alert(z);
}
$('.requed').on('change', function() {
test('#'+$(this).attr('id'), 'validate'+$(this).attr('data-var'));
});
В ином случае нужно заменить window на имя объекта-предка, содержащего эту функцию
Комментариев нет:
Отправить комментарий