Использование jQuery и формы HTML5 для заполнения поля выбора в веб-форме Marketo - PullRequest
1 голос
/ 22 мая 2019

Редактировать: добавлен CodePenn для включения рабочего примера.

Я выбираю вариант из формы HTML5 и заполняю веб-форму Marketo ее соответствием.

Использование некоторого jQuery для получения значения элемента html и сопоставления его с формой marketo. Как только я выбираю опцию в форме A, она выбирает опцию в форме B

Форма A = обычная форма HTML5

Форма B = веб-форма Marketo

Форма Marketo имеет дополнительные поля, которых нет в HTML, пока вы не выберете опцию. Как только вы выберете опцию, она вставит другие поля в форму. Если я выбираю значение параметра вручную, он работает нормально, но когда скрипт добавляет значение в форму Marketo, он не запускается / не запускается одинаково.

Обычная разметка HTML5 формы:

<form>
<div class="form-group">
  <p><strong>I AM INTERESTED IN:</strong></p>
  <select id="select-iminterestedin" name="contact_iminterestedin" class="form-control">
    <option value="">Select...</option>
    <option value="option1">option1</option>
    <option value="option2">option2</option>
    <option value="option3">option3</option>
  </select>
</div>
</form>

Соответствует значению параметра во второй форме:

  // populate the select field

  $('[name="contact_iminterestedin"]').on('change', function() {
    const selected = $(this).val();
    const matchValue = $(`#Initial_Product_Requested__c option[value="${  selected  }"]`);
    matchValue.prop('selected', true);
  });

CodePenn демо всей вещи:

https://codepen.io/bruno-gomes/pen/YbYBER?editors=0010

Поэтому, когда я выбираю поле в форме HTML5, он добавляет выбранную опцию в форму Marketo. Однако это не вызывает дополнительное поле, которое будет отображаться в форме Marketo. Но если я выберу поле в форме Marketo вручную, появится это новое поле.

Я хотел бы знать / понять, если конкретный метод, который я использую, не работает так, как я ожидал, или если есть другой подход, возможно, отсутствует что-то связанное с .trigger ('change') или .click ('change') ) ..

К сожалению, я не могу предоставить HTML для формы Marketo. Загружается на сайт через marketo API.

Любые советы или помощь очень ценится! С уважением.

1 Ответ

0 голосов
/ 23 мая 2019
    $(document).on('change', '[name="contact_iminterestedin"]').on('change', function() {
        const selected = $(this).val();
        const matchValue = $(`#Initial_Product_Requested__c option[value="${  selected  }"]`);
        matchValue.prop('selected', true);
    });

этот код должен регистрировать четный обработчик в документе

...