Не работает js на jquery-3.7.0?
Добрый вечер, на jquery-3.7.0 перестала работать js, на jquery-2.1.1 все работало нормально.
function saveform() { var dst = ''; pricetype = $('select[name="price_type"]').val(); if (pricetype == 1) dst = 'csv'; if (pricetype == 2) dst = 'xml'; if (pricetype == 3) dst = 'excel'; $.ajax({ url: '/admin/index.php?route=' + module_path + '/savesupplier&user_token=' + getURLVar('user_token') + submit_url, data: $( 'input[name="suppl_name"], #tab-settings input, #tab-settings select' ), type: 'post', dataType: 'json', done: function (data) { if (!data.error) { $('#tab-settings').remove(); save_chemacategs(data.supplier_id, dst, 0); } else { console.log(data); } }, fail: function (jqXHR, textStatus, errorThrown) { console.log(textStatus + ' ' + errorThrown); } }); } |
function saveform() { var dst = ''; pricetype = $('select[name="price_type"]').val(); if (pricetype == 1) dst = 'csv'; if (pricetype == 2) dst = 'xml'; if (pricetype == 3) dst = 'excel'; $.ajax({ url: '/admin/index.php?route=' + module_path + '/savesupplier&user_token=' + getURLVar('user_token') + submit_url, data: $( 'input[name="suppl_name"], #tab-settings input, #tab-settings select' ), type: 'post', dataType: 'json', done: function (data) { if (!data.error) { $('#tab-settings').remove(); save_chemacategs(data.supplier_id, dst, 0); } else { console.log(data); } }, fail: function (jqXHR, textStatus, errorThrown) { console.log(textStatus + ' ' + errorThrown); } }); }
должно перейти на save_chemacategs, но это не работает.
было
success: function (data) {
и
error: function (jqXHR, textStatus, errorThrown) {
были ошибки
нашла инфу что надо
success заменить done и fail вместо error
заменила, ошибки ушли, но все равно не работает. ошибок в консоле нет
Дополнительно:
вопрос решен
в общем метом тыка, проб и ошибок, получается если
.success(function (data) {
то надо заменить на done
а если
success: function (data) {
то не надо менять.
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.
И вышел jQuery 3.0 ещё в 2016 году.
В вашем коде вы используете неправильные имена обработчиков для успеха и ошибки ajax-запроса. Вместо done и fail используйте success и error, соответственно.
UPD:
Вот стандартный пример ajax-запроса:
$.ajax({ url: 'https://domain.com/router/', method: 'post', // NOT A TYPE data: JSON.stringify({ ... }), dataType: 'application/json; charset=utf-8', success: (response) => { ... }, error: (response) => { ... } }) |
$.ajax({ url: 'https://domain.com/router/', method: 'post', // NOT A TYPE data: JSON.stringify({ ... }), dataType: 'application/json; charset=utf-8', success: (response) => { ... }, error: (response) => { ... } })
.done и .fail срабатываю, когда у вас получилось либо не получилось сделать запрос. success и error срабатывают в зависимости от ответа сервера.
- спасибо, я уже это поняла
- nata32, если ответ помог, отметьте решением
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для начала, необходимо убедиться, что версия jQuery, которую вы используете (в данном случае 3.7.0), поддерживается вашим браузером. Проверьте совместимость версии jQuery с браузером, который вы используете.
Далее, убедитесь, что вы правильно подключили jQuery к вашему проекту. Убедитесь, что путь к файлу jQuery указан правильно и файл доступен по этому пути. Проверьте консоль разработчика в браузере на наличие ошибок загрузки файла jQuery.
Если вы уверены, что jQuery подключен правильно, проверьте ваш код JavaScript. Убедитесь, что нет ошибок в синтаксисе и что все события и функции вызываются правильно.
Если у вас есть код JavaScript, который зависит от jQuery, убедитесь, что он находится внутри блока $(document).ready(function() {...}); для того, чтобы гарантировать, что код будет выполняться только после полной загрузки DOM.
Если после всех этих шагов проблема все еще остается, попробуйте использовать более стабильную версию jQuery, например, 3.6.0 или 3.5.1. Иногда проблемы могут возникать из-за ошибок в новых версиях jQuery, которые еще не были исправлены.
Если ничего из вышеперечисленного не помогло, попробуйте создать минимальный рабочий пример кода, который демонстрирует вашу проблему, и опубликуйте его для того, чтобы другие разработчики могли вам помочь более точно.
$(document).ready(function() { // Ваш JavaScript код здесь });
Надеюсь, эти советы помогут вам решить проблему с работой JavaScript на jQuery 3.7.0.