Игорь
Приветствую. Никто не подскажет, как запретить очищать input (несколко из всех, что у формы) после отправки письма AjaxForm?
Evgeniy
код в студию.
Чуть позже вышлю. Спасибо
Alexey
Там form reset делается
Игорь
Там form reset делается
Это да. Для всей формы. Можно ли как-то исключить некоторые поля от очистки?
Игорь
Можно, наверное, и вообще отключить. Только как?
Alexey
Можно, наверное, и вообще отключить. Только как?
копию js аяксформа можно сделать и подключать свой js при вызове сниппета
Игорь
А прописать параметр отдельно на странице?
Alexey
Может есть решение получше, с удовольствием посмотрю что ответят другие
Alexey
А прописать параметр отдельно на странице?
'frontend_js' => '[[+assetsUrl]]js/custom.js'
Алексей
Помоему заменить js на свой - самый оптивальный выход.
Игорь
'frontend_js' => '[[+assetsUrl]]js/custom.js'
Ну, думал, может, есть вариант попроще. Спасибо за помощь. Так и буду делать) В лом было)))
Alexey
можно перед form reset считать значения нужных полей, сделать сброс и прописать значения обратно
Игорь
Чnо-то карма не плюсуется. Ведь раньше плюсовалась, на сколько я помн
Игорь
Evgeniy
Чуть позже вышлю. Спасибо
function renderCharts() { var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints : dataPoints, } ] }); chart.render(); //работает } $(function () { var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value['title'], y: parseInt(value['y']) , indexLabel: '{y}'}); }); renderCharts(); chart.render(); //undefined }); } });
Evgeniy
код в студию.
В общем, выше)
Алексей
вынесете за функцию определение переменной chart
Evgeniy
вынесете за функцию определение переменной chart
Тогда я не смогу chart.destroy() И снова chart.render(). Ибо объекта уже не будет
Evgeniy
В общем это выглядит как 1 кнопка создаёт объект, выполняет его метод. Вторая кнопка удаляет объект. Первая снова создаёт и т.д.
Evgeniy
И как это реализовать не в разных функциях я не могу придумать)
Алексей
Тогда я не смогу chart.destroy() И снова chart.render(). Ибо объекта уже не будет
$(function () { var chart = ''; function renderCharts() { var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints : dataPoints, } ] }); chart.render(); //работает - сразу в функции рендер. } var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value['title'], y: parseInt(value['y']) , indexLabel: '{y}'}); }); renderCharts(); chart.render(); //undefined скорее и не нужно т.к. у вас уже в функции render }); } });
Алексей
вы пробовали убирать что я выделил? chart.render() в клике не видит переменную что вы определили, поэтому и пишет что она не функция...
Алексей
Так он говорит на вторую chart.render is not a function. И она нужна, может быть chart.destroy() chart.update и так далее.
когда вы вызываете фунцию renderChart(); - она срабатывает. и все. следующий chart.render() - бесполезен тк переменная не определена.
Evgeniy
когда вы вызываете фунцию renderChart(); - она срабатывает. и все. следующий chart.render() - бесполезен тк переменная не определена.
А как тогда ещё раз обратится к этому созданному объекту, чтобы его удалить, например?
Алексей
А как тогда ещё раз обратится к этому созданному объекту, чтобы его удалить, например?
$(function () { var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints : dataPoints, } ] }); chart.render(); //работает - сразу. var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value['title'], y: parseInt(value['y']) , indexLabel: '{y}'}); }); //renderCharts(); chart.render(); // рендер того что определилось еще раз. }); } });
Алексей
Попробуйте без функции renderCharts();
Evgeniy
Попробуйте без функции renderCharts();
Рендерится, на второй раз удаляется. Но в третий раз не рендерится. Объект уже удален. Поэтому писал в функции, чтобы ещё раз создать объект. Быть может не тот путь. Мне нужно вывести 12 графиков в 1 блоке, при выборе из списка месяца - появляется другой график. Не грузить же все 12 сразу и скрывать. Потом их может быть 1200 и т.д.
Алексей
а потом меняется при клике?
Evgeniy
Да
Алексей
и должна с этими параметрами открыться, а старая удалиться?
Evgeniy
Да
Алексей
епт
Алексей
попробуйте в лоб так:
Алексей
Да
$(function () { var dataPoints; // Чему то сначала равна? var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints: dataPoints, } ] }); chart.render(); //работает - сразу. var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value['title'], y: parseInt(value['y']) , indexLabel: '{y}'}); }); chart.destroy(); // УДАЛЯЕМ КАК ТО var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints: dataPoints, } ] }); chart.render(); }); } });
Evgeniy
Да, так сработает
Evgeniy
В примере они подряд создавали и удаляли 2 объекта
Evgeniy
Хотя сейчас проверю, конечно..
Evgeniy
$(function () { var dataPoints; // Чему то сначала равна? var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints: dataPoints, } ] }); chart.render(); //работает - сразу. var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value['title'], y: parseInt(value['y']) , indexLabel: '{y}'}); }); chart.destroy(); // УДАЛЯЕМ КАК ТО var chart = new CanvasJS.Chart("chartContainer", { title: { text: "title" }, axisY: { title: "Y", }, axisX: { title: "X" }, data: [{ dataPoints: dataPoints, } ] }); chart.render(); }); } });
$(function () { var dataPoints; // Чему то сначала равна? var chart = new CanvasJS.Chart("chartContainer", { data: [{ dataPoints: dataPoints, }] }); chart.render(); //работает - сразу. var input = document.getElementById('elem'); input.onclick = function (e) { e.preventDefault(); $.getJSON("file.json", function(data) { $.each(data, function(key, value){ dataPoints.push({label: value}); }); chart.destroy(); // УДАЛЯЕМ КАК ТО var chart = new CanvasJS.Chart("chartContainer", { data: [{ dataPoints: dataPoints, }] }); chart.render(); }); } });
Evgeniy
Сократил немного, чтобы пелены кода не было. Так работает. Второй раз создаётся и рендерится
Алексей
и 3й и 4й раз тоже?
Evgeniy
и 3й и 4й раз тоже?
Так.. началась магия.
Evgeniy
и 3й и 4й раз тоже?
В общем, пойду разбираться. Когда вставляю в лоб второй объект после удаления, первый рендер становится undefined.удаляю все после destroy - все работает. В общем спасибо за помощь. Думаю где-то очевидный косяк..)
Алексей
пожалста.
Владимир
У меня на сайте есть 2 фильтра товаров (по сути они одинаковые). Один используется в обычной версии сайта, другой - в мобильной. В мобильной версии работает, в обычной - нет. Я так предполагаю, что это из-за того, что у форм фильтра одинаковый id. Вопрос, как разделить их? обработка происходит, как я понял в /components/msearch2/js/web/default.js
Sentinel
Всем привет Расширяю класс доставки этим способом https://docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/podklyuchenie нужно сделать чтобы и сумма у доставки на фронте менялась на 0 подскажите как это сделать?
Алексей
да
нее... так не пойдет. Попробуйте применить mobileDetect и выводить для мобилы свой а для ПК - свой.
Алексей
у mFilter есть параметр toPlaceholders попробуй его использовать
Нее... там же еще есть настройки JS для фильтра и они привязаны к определенным ID, конечно их можно поменять, но зачем 2 раза генерить 2 фильра??
Sentinel
https://modx.pro/help/3411
Игорь
Передаю value radio и checkbox так: onclick="sajt.activeCheck.value=this.value Это внутри формы. Как это же передать или вдругую форму или без формы?
Владимир
нее... так не пойдет. Попробуйте применить mobileDetect и выводить для мобилы свой а для ПК - свой.
сделал mobiledetect, но не сработало. Всё равно в исходном коде страницы выводятся 2 формы фильтра
Алексей
ну так нужно же условие поставить чтобы один выводился а второй нет.
Алексей
или вы просто установили и все?
Владимир
{if 'mobile' | mobiledetect} <div class="filter_background"> <div class="menu_layout"></div> <div class="filter_mobile"> <div class="mobile_header"> <div class="mobile_filter_title"> Фильтр </div> <div class="close_filter_button"> <img src="/assets/templates/vogelundnoot/imgs/close_mobile_menu.png" alt="Закрыть" /> </div> </div> [[$catalogFilterMobile]] /* тут вызов <form action="[[~[[*id]]]]" method="post" id="mse2_filters"> */ </div> </div> {/if} {if 'standart' | mobiledetect} ... <form action="[[~[[*id]]]]" method="post" id="mse2_filters"> ... </form> {/if}
Алексей
вы на fenome страницы создаете или на обычном синтаксисе MODX?
Алексей
у вас и тот и тот применяется...
Владимир
местами fenom использую
Anton
местами fenom использую
коментарии на fenom выглядят так {* коментарий *} а не /* */
Алексей
местами fenom использую
т.е. в шаблонах у вас рабоатет и {$pagetitle} - выводится?
Владимир
коментарии на fenom выглядят так {* коментарий *} а не /* */
прошу прощения, это я просто так тут комментарий написал. В коде у меня нет этих комментариев
Алексей
{$pagetitle} - выводится в принципе?
Алексей
это важно
Владимир
настройки фенома я уже смотрел. Он у меня включён
Алексей
попробуйте применить с тегами MODX
Алексей
да
Алексей
Енто блин вызов сниппета :) в феноме
Алексей
забей