Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2024, 20:00
Новичок на форуме
Отправить личное сообщение для Иван_Некрылов Посмотреть профиль Найти все сообщения от Иван_Некрылов
 
Регистрация: 30.06.2024
Сообщений: 3

Доработка кода из библиотеки Tilda
Здравствуйте. Нашёл на сайте тильда который позволяет отправлять данные с форм на webhook, получилось сделать практически всё необходимое для корректной работы, но столкнулся с одной проблемой.
Если на странице есть две разных формы, то для них размещаю два разных кода, в каждом прописано из какой формы получать информацию, но из за условия срабатывания функции при отправке данных с формы, активируется только один из всех размещённых кодов, то есть условно, есть форма1 код1, форма2 код2, и при отправке формы1, срабатывает код2 отправляя пустую форму2. Подскажите пожалуйста как в условии явно указать что бы код реагировал только на срабатывание нужной формы по её имени, или id.

<script>
  function t396_onCuccess(form) {
    if (!form) return;
    if ( (form instanceof jQuery) && (form.name == "form766400775") )
    {
      form = document.forms["form766400775"];
    }

    /* номер заявки (Lead ID) */
    var leadId = form.tildaTranId;
    var orderId = form.tildaOrderId;

    /* Все поля заявки */
    var obj = {};
  var FieldDate = "";
  var FieldAuto = "";
  var FieldNomer = "";
  
    var inputs = form.elements;
    Array.prototype.forEach.call(inputs, function (input) {
     //  obj[input.name] = input.value;
        if(input.name=="Имя")
        {
                  obj["name"] = input.value;
        }
        if(input.name=="Номер телефона")
        {
                  obj["phone"] = input.value.replace(/[-+()\s]/g, '');
        }
       if(input.name=="Date")
        {
            FieldDate ="Дата заезда "+input.value;
        }
          if(input.name=="Input")
        {
            FieldAuto ="Марка автомобиля "+input.value;
        }
           if(input.name=="Input_2")
        {
            FieldNomer ="Номер автомобиля "+input.value;
        }
        
    });
  obj["comment"] = FieldAuto + "\n" + FieldNomer + "\n" + FieldDate;
    console.log(obj);

    /* Отправляем данные POST-запросом */
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'https://cloud.salon1c.ru/api/hs/lead/Webhook/00bc3320-6048-4b02-bdaf-1fd14c33a016');
    xhr.send(JSON.stringify(obj));
    xhr.onload = function () {
      if (xhr.response) {
        /* Какие-то действия, если данные дошли успешно */
        console.log("Дошло");
        /* Переадресация на страницу успеха */
        var successUrl = form.getAttribute('data-success-url');
        if (successUrl) window.location.href = successUrl;
      }
    };
  }
</script>

Последний раз редактировалось Иван_Некрылов, 01.07.2024 в 11:44.
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2024, 22:33
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,671

Сообщение от Иван_Некрылов
and
В js нет такого оператора, будет ошибка.
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2024, 10:14
Новичок на форуме
Отправить личное сообщение для Иван_Некрылов Посмотреть профиль Найти все сообщения от Иван_Некрылов
 
Регистрация: 30.06.2024
Сообщений: 3

Спасибо, поправил, но по какой то причине всё равно не отрабатывает код, не могу понять в чём именно проблема, есть подозрение что я как то неправильно сравниваю атрибут формы с нужным мне значением, так как стоит убрать вторую часть условия и функция срабатывает как надо
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2024, 10:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,671

Сообщение от Иван_Некрылов
поправил
Не видно. Плюс код надо отформатировать: https://javascript.ru/formatting
Сообщение от Иван_Некрылов
не могу понять
Используйте console.log() для проверки значений.
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2024, 11:47
Новичок на форуме
Отправить личное сообщение для Иван_Некрылов Посмотреть профиль Найти все сообщения от Иван_Некрылов
 
Регистрация: 30.06.2024
Сообщений: 3

Извините, поправил
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2024, 12:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,740

Не понятно, как и где вызывается эта функция. Что передается, как параметр form?
Ну и html код, где описаны эти формы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка кода JS Adverterio Элементы интерфейса 7 22.07.2015 12:11
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Общие вопросы Javascript 1 16.08.2013 12:02
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Библиотеки/Тулкиты/Фреймворки 3 15.06.2013 15:48
доработка кода RESi Серверные языки и технологии 0 12.11.2012 21:07