Uncaught ReferenceError: mse2FormConfig is not defined
Решение ошибки Uncaught ReferenceError: mse2FormConfig is not defined в компоненте mSearch2.
При подключении компонента mSearch2, если в консоли вы встретили следующую ошибку:
Uncaught ReferenceError: mse2FormConfig is not defined
То это значит, что не отрабатывает инициализация формы скриптом компонента. Проверить доступны ли объекты mSearch2, можно запустив эти два скрипта в консоли браузера:
$(document).ready(function() {
console.log(mSearch2);
});
$(document).ready(function() {
console.log(mse2FormConfig);
});
Решение ошибки
На самом деле, эта ошибка вызывается небольшой недоработкой автора компонента. Если у формы указать класс msearch2, а у сниппета mSearchForm указать параметр 'autocomplete' => 0 (т.е. отключить, как указано в документации), то конфигурация формы не инициализируется.
Иными словами, нужно либо включить параметр autocomplete (по умолчанию он включен) добавив класс msearch2 к форме, либо убрать класс msearch2 у формы, что отключит autocomplete.
Вот пример рабочей формы без параметра autocomplete:
{set $searchForm = $_modx->runSnippet('!mSearchForm', [
'pageId' => 5,
'limit' => 10,
'tplForm' => '@FILE chunks/search/form.tpl',
])}
{$searchForm}
<form action="{$pageId | url}" method="get" class="search">
<input type="text" id="searchbox" placeholder="Поиск" name="{$queryVar}" value>
<button type="submit" class="btn">Найти</button>
</form>
И такой же рабочий пример с включенным параметром autocomplete:
{set $searchForm = $_modx->runSnippet('!mSearchForm', [
'pageId' => 5,
'limit' => 10,
'tplForm' => '@FILE chunks/search/form.tpl',
])}
{$searchForm}
<form action="{$pageId | url}" method="get" class="search msearch2">
<input type="text" id="searchbox" placeholder="Поиск" name="{$queryVar}" value>
<button type="submit" class="btn">Найти</button>
</form>
Таким образом можно избежать ошибки инициализации формы в компоненте mSearch2.
Время запросов: 0,1729 s
Количество запросов: 28
Источник: cache