Javascript 当按下按钮或将visible设置为true时,从JSON动态创建表单?

Javascript 当按下按钮或将visible设置为true时,从JSON动态创建表单?,javascript,jquery,html,json,forms,Javascript,Jquery,Html,Json,Forms,为这个标题道歉,我不知道如何将我的不幸一笔勾销 我有一个简单的问题,但无法决定解决方案或实施 我正在创建一个web测试套件,其中有一个下拉列表,向用户提供可用的选项。每个选项都是对特定模板/表单的引用 解释: 选择选项:ABC/DEF/GHI 选择ABC将为已经填充数据的用户生成一个表单,然后他们可以提交此表单以运行测试,或者更改数据,然后提交 选择DEF或GHI将生成类似的格式但形式不同,这些格式将具有不同的值等 我想不出最好的路线,我不需要太多的复杂性,但我也在寻找优雅,矛盾 我认为最简单的

为这个标题道歉,我不知道如何将我的不幸一笔勾销

我有一个简单的问题,但无法决定解决方案或实施

我正在创建一个web测试套件,其中有一个下拉列表,向用户提供可用的选项。每个选项都是对特定模板/表单的引用

解释:

选择选项:ABC/DEF/GHI

选择ABC将为已经填充数据的用户生成一个表单,然后他们可以提交此表单以运行测试,或者更改数据,然后提交

选择DEF或GHI将生成类似的格式但形式不同,这些格式将具有不同的值等

我想不出最好的路线,我不需要太多的复杂性,但我也在寻找优雅,矛盾

我认为最简单的解决方案是让页面上的所有表单都已填充,但都用css隐藏,然后我可以使用jquery使表单再次可见,或者使用一些组合,其中可能有一个覆盖div将其隐藏,然后设置我想要可见的表单的z索引,不确定但听起来不太漂亮

另一种方法需要更多的努力,但需要动态创建表单,然后在按下按钮时显示表单,可能是从json对象

有什么想法/建议/建议吗

它们具有相同的结构

他们有不同的价值观

它们是否有相同的
操作

  • 如果则使用一种形式,并在选择更改时更改值
  • 如果则取决于您,但处理一个表单要容易得多
DEF/GHI值经常变化还是固定值?

  • 如果它们经常更改值,则获取
    选择中的值使用
    $.getJSON
    更改
    ,并使用正确的信息填充
    表单
    ,但不保留信息,因为它们总是更改
  • 如果,表示它们是固定值,则在页面加载时使用
    $.getJSON
    获取信息(或者如果之前的答案是。在页面加载时将信息存储在三种形式之一中),并将其存储在变量中。(如果之前的答案是)当发生
    选择更改时,只需从变量中获取信息

    • 如果我理解你的意思,你需要这样的东西吗(给我们举个例子):

      下拉选项:

      <ul class="dropdown-menu">
          <li>
            <a class="ajax-link" template="my_template_form1" href="#">
              access form1
            </a>
          </li>
          <li>
            <a class="ajax-link" template="my_template_form2" href="#">
              access form2
            </a>
          </li>
      </ul>
      

      依我看,如果你想要最简单的,那么“硬编码”并根据用户的选择显示/隐藏表单。如果在表单结构或输入值方面没有什么需要更改的,那么这是您的最佳选择。下一个问题是为什么你甚至必须显示表单。如果用户没有更改任何内容,为什么不在用户做出选择时提交表单呢?@jonmrich-这是一个很好的观点。因此,如果他们对预先填充的数据感到满意,我可以立即提交,但有时这些数据会被编辑,我可能还需要在某个时候对字段中包含的值进行随机化。谢谢!最后通牒将在同一位置执行,以根据表单中的值构建encrytped字符串。例如,根据其是ABC还是CDE,表单中的某些字段将不是必需的。值发生变化的可能性非常大,因为我认为测试人员会希望在使用rpedefined变量的同时,垃圾邮件发送各种变量create@SteveGreen取决于您是否使用验证程序插件。切换同一表单的规则相对来说比较容易,应该是在公园里散步来处理一个表单。我建议使用getJSON发送每个表单的规则。我认为这与我所考虑的是一致的,我现在正在修改示例,看看是否可以让它起舞,如果有任何问题,我会回复,谢谢您花时间回复,:)
      $('a.ajax-link').click(function (e){
          $("#divMain").load($(this).attr('template'));
      });