Przeglądaj źródła

Try It Out: Only set checked radio buttons in query

shalvah 3 lat temu
rodzic
commit
9ea076648b
1 zmienionych plików z 5 dodań i 16 usunięć
  1. 5 16
      resources/js/tryitout.js

+ 5 - 16
resources/js/tryitout.js

@@ -177,22 +177,11 @@ async function executeTryOut(endpointId, form) {
 
     const query = {};
     const queryParameters = form.querySelectorAll('input[data-component=query]');
-    queryParameters.forEach(el => _.set(query, el.name, el.value));
-    
-    // Group radio buttons by their name, and then set the checked value from that group
-    Array.from(queryParameters)
-        .filter(el => el.type === "radio")
-        .reduce(
-            (entryMap, el) => entryMap.set(el.name, [...(entryMap.get(el.name) || []), el]),
-            new Map()
-        )
-        .forEach((v, k) => {
-            v.forEach(el => {
-                if (el.checked) {
-                    _.set(query, k, el.value);
-                }
-            });
-        });
+    queryParameters.forEach(el => {
+        if (el.type !== 'radio' || (el.type === 'radio' && el.checked)) {
+            _.set(query, el.name, el.value);
+        }
+    });
 
     let path = form.dataset.path;
     const urlParameters = form.querySelectorAll('input[data-component=url]');