gas_dynamichtml

HTML

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  </head>
      
    <div id='input_parent'></div>
  </body>  



  
    <br><input type="button" value="Submit" onClick="test()">
    
    </form>

JavaScript

inputObj = {"first field":{"required":true,"dataType":"select","options":["first opt","second opt"]},"second field":{"required":true,"dataType":"text","options":"none"}}
        // Section  
        section = document.getElementById("input_parent");

        div = document.createElement("div");
        div.setAttribute("id", "input_child");

        section.appendChild(div); 

             

          var fields = Object.keys(inputObj);     

          Array.from(fields).forEach((arg) => { 

            // Label
            section = document.getElementById("input_parent");

            label = document.createElement("label");
            label.setAttribute("id", "label_"+arg);
            label.setAttribute("for", arg);
            label_txt = document.createTextNode(arg+":");
            label.appendChild(label_txt);

            section.appendChild(label); 
            
            
                if (inputObj[arg].dataType == "select") { 
                      // Create select element                  
                      section = document.getElementById("input_parent");
                      const select_element = document.createElement("select");
                      select_element.setAttribute("id", "select_"+arg);               
                      
                      section.appendChild(select_element);
                      
                      var options = inputObj[arg].options
                      for(let o = 0; o < options.length; o++)
                      {
                        var element = document.getElementById("select_"+arg);
                        const option = document.createElement("option");
                        var text = document.createTextNode(arg+":");
                        option.textContent = options[o];
                        option.setAttribute("value", options[o]);
                        element.appendChild(option);

                      };

                     
                                         ...