Преглед на файлове

Group radio buttons when setting query parameters, so only the selected value is added

Radio buttons would call `_.set` for each of them, meaning that the value of the parameter would always be the set to the same as the last added.

With this change, the selected value is set instead.
stelar7 преди 3 години
родител
ревизия
65d259ad48
променени са 1 файла, в които са добавени 13 реда и са изтрити 0 реда
  1. 13 0
      resources/js/tryitout.js

+ 13 - 0
resources/js/tryitout.js

@@ -178,6 +178,19 @@ async function executeTryOut(endpointId, form) {
     const query = {};
     const queryParameters = form.querySelectorAll('input[data-component=query]');
     queryParameters.forEach(el => _.set(query, el.name, el.value));
+    Array.from(queryParameters)
+        .filter(el => el.type === "radio")
+        .reduce(
+            (entryMap, e) => entryMap.set(e.name, [...(entryMap.get(e.name) || []), e]),
+            new Map()
+        )
+        .forEach((v, k) => {
+            v.forEach(el => {
+                if (el.checked) {
+                    _.set(query, k, el.value);
+                }
+            });
+        });
 
     let path = form.dataset.path;
     const urlParameters = form.querySelectorAll('input[data-component=url]');