Не работает js на jquery-3.7.0?

Ссылка скопирована
26 января 2026 1 ответ

Добрый вечер, на 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) {
то не надо менять.

  • nata32, в следующий раз выкладывай текст ошибки, а то приходится сидеть и догадываться
  • nata32, Зачем нужен метод тыка, если прямо в документации написано:

    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, если ответ помог, отметьте решением
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ольга Сеть Ответ

    Для начала, необходимо убедиться, что версия 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 код здесь
    });

    $(document).ready(function() { // Ваш JavaScript код здесь });

    Надеюсь, эти советы помогут вам решить проблему с работой JavaScript на jQuery 3.7.0.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно