У нас есть сайт, размещенный в hubspot, мы используем свой собственный WYSIWYG для создания макетов, а затем создаем их с помощью css и js.Проблема с обработкой формы с помощью javascript
На домашней странице http://www.lspatents.com/ у него обычно была форма под заголовком «Начало работы здесь», у нее было около 10 вопросов и использовался javascript для разделения их на шаги, чтобы они могли поместиться в одной и той же области в текущем показанном пробеле коробка.
Он работал очень хорошо, пока два дня назад форма не исчезла и оставила ее с пустой областью, как вы можете видеть сейчас, и насколько я знаю, никто недавно не коснулся этого кода.
Вот код JS, который был использован для манипулирования формы
// Hero Form
$(window).load(function() {
// disable autocomplete to fix bug
$('.hero-form form').attr("autocomplete", "off");
$('.hero-form .hs-richtext').each(function() {
$(this).nextUntil('.hs-richtext').wrapAll('<div class="step" />');
});
// Hide Loading icon
$('.hero-form form').css('background', 'none');
$('.hero-form form .step:nth-of-type(2)').show();
// First Step to Second Step
$('.step').find('.hs-richtext').change(function() {
$('.step:nth-of-type(2)').hide().next().next().fadeIn();
});
// Second Step to Third Step
$('.step').find('.hs-input').change(function() {
var names = {};
$(':radio').each(function() {
names[$(this).attr('name')] = true;
});
var count = 0;
$.each(names, function() {
count++;
});
if ($(':radio:checked').length === count) {
$('.step:nth-of-type(4)').hide().next().next().fadeIn();
}
});
});
Насколько я мог сказать, разработчик использовал CSS, чтобы скрыть всю форму площади с дисплеем: нет; и использовал js выше, чтобы разделить вопросы на шаги и показать определенное число на каждом шаге.
Вы можете увидеть код, который вызывается в нижнем колонтитуле, поэтому нет никакой проблемы со ссылкой на файл .js, также если вы проверите элемент и отключите отображение: none; это объявлено для любого из div в форме героя, все вопросы отображаются, поэтому нет никакой проблемы с формой, так почему же она перестала работать?
бы признателен за любую помощь,
Имеет ли форму, всегда используется Реагировать? Если нет, вам часто приходится обертывать элемент в содержащем div, чтобы иметь дело с тем, как реагировать может только один элемент верхнего уровня в блоке. Возможно, это смещение n-го типа или следующего().next() type navigation –
Как я уже сказал, я не тот, кто создал это, поэтому я не могу точно сказать, но я думаю, что это было сделано с jquery, потому что это то, что Hubspot загружает по умолчанию, и я не могу найти звонок для библиотеки React где-то здесь – user2159384
Его определенно используют React сейчас, потому что форма полна DIV с большим количеством таких вещей, как this data-reactid = ". 0.0: $ 2". Поэтому мой вопрос всегда был таким. Итак, что когда-либо генерирует форму, используется React. Как я уже сказал, порядок ионов, чтобы разместить два узла DOM на одном уровне в реакции, вам нужно обернуть их в контейнерный узел i (у реагирования может быть только один узел верхнего уровня для компонента. Возможно, это изменило разметку путем добавления дополнительных узлов. –