Проблема, которую я пытаюсь решить, заключается в том, что я хочу иметь простую ступенчатую форму на одной странице, которая собирает некоторые основные данные для создания строки URL-адреса, которая затем заполняет калькулятор на другой странице.

У меня такой код:

`var params = { пользователи: 500, длина: 24, маршрутизатор: "Платить ежемесячно", };

var queryString = $.param(params);
var myurl = "/calculator/?" + queryString ;

$( ".results" ).click(function() {  
    window.history.pushState('', "", myurl);
});`

В приведенном выше примере количество пользователей (500), длина (24) и маршрутизатор (ежемесячная оплата) — это переменные, которые я хотел бы передать в код выше, чтобы создать строку, которая добавляется к URL-адресу.

В принципе, вышеизложенное работает со статическими значениями, которые я ему дал, но я просто зациклился на том, как получить значения из входных данных HTML.

Кто-нибудь может помочь?

Благодарность

Я попытался передать вышеуказанное в массив для анализа, но это не дает ожидаемых результатов.

0
junglist 23 Янв 2023 в 22:07

1 ответ

Вы можете использовать $.serialize с элементом <form>, содержащим все входные данные.

let queryString = $('form').serialize();
let myurl = "/calculator/?" + queryString;
console.log(myurl);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input name="users" value="500"/>
  <input name="length" value="24"/>
  <input name="router" value="Pay Monthly"/>
</form>
0
Unmitigated 23 Янв 2023 в 22:10