Что может вызвать - uncaught typeerror: validoptions [i] .tolowercase не является функцией?
-
16-10-2019 - |
Вопрос
Я пытаюсь добавить дополнительную функциональность jQuery в Magento, но мой скрипт не может работать, и в консоли браузера я замечаю эту ошибку:
Uncaught TypeError: Object function each(iterator, context) {
var index = 0;
try {
this._each(function(value) {
iterator.call(context, value, index++);
});
} catch (e) {
if (e != $break) throw e;
}
return this;
} has no method 'toLowerCase'
Вот мой сценарий
<script>
jQuery(function() {
jQuery('.temp-variable-price').on('input', function() {
if(jQuery('input[class=temp-variable-price]').val()=="free")
{
jQuery('.temp-variable-price').val('FREE');
}
});
var validOptions = [];
validOptions.push("FREE");
var x = 1;
while (x<1000) {
if (x<100) {
validOptions.push(""+x+"p");
} else {
var y = x.toString();
var z = y.split('');
validOptions.push(""+z[0]+"."+z[1]+""+z[2]+"");
}
x++;
}
previousValue = "";
jQuery('.temp-variable-price').autocomplete({
autoFocus: true,
source: validOptions
}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
});
});
</script>
Его хороший автозаполнение и проверка скрипта для определенных полей формы, вы можете увидеть демонстрацию здесь
Если кто -то знает, что означает эта ошибка, я был бы так благодарен за объяснение того, как отладить и исправить эту проблему?
Решение
Это означает validOptions[i]
не строка. Использовать console.log(validOptions[i]);
Чтобы узнать, что это такое. Может быть undefined
.
При желании вы можете сделать следующее, чтобы убедиться, что это всегда строка
validOptions[i].toString().toLowerCase()....
Не связан с magento.stackexchange