发布跨越两个表行

时间:2017-10-23 20:38:11

标签: javascript jquery html forms

我有一个案例,我已经创建了一个包含实体的表。 每个第一行都是可点击的摘要行,而每个第一行都是隐藏的信息行,可以使用输入字段和提交按钮进行扩展,以允许用户更新实体。摘要行有几列。 我现在用于更新此解决方案的解决方案是信息行中的表单,输入和提交按钮。

帕格符号描述了一个实体的场景,尽管在现实世界中会有更多场景:

table
  tr.summary
    td.name
      input(type="text",name="name", value="The name")
    td.moreData
      input(type="text",name="moreData", value="testing")
    td.evenMore
  tr.info
    td(cospan=3)
      form(action="api/update/")
        input(type="text",name="customer")
        button(type="submit") Send

我现在的问题是我还想将输入包含在我的帖子数据的标题行中。

我还需要说我已经截获了此提交的正常行为,允许JQuery执行PUT请求而不是正常的POST,并且还要让用户保持在同一页面上。

我的两种解决方案现在如下:

  1. 在我的javascript拦截代码中,以编程方式包含之前行的输入。这个解决方案可能需要1-5行额外的代码,但会破坏我的HTML的语义,因为表单不包含所有正在发送的字段。

  2. 更新摘要行中的HTML,使其只有一行,其中包含一个包含上一个摘要行和信息行的表。这个解决方案允许我用表单包装内部表,并保留语义。但它看起来很糟糕......

  3. 关于哪种解决方案最好的建议,或者是否有其他可能的解决方案?

1 个答案:

答案 0 :(得分:0)

我在另一个频道上获得了有关HTML5中新属性的提示。该属性位于输入元素上,并且是" form"声明它属于哪种形式。我试过了,它似乎完美无缺。希望我以后不会遇到任何问题。 该解决方案在IE的任何版本中都不起作用,但由于我使用jQuery进行发布而不使用本机行为,因此它应该适用于我的场景,但可能不适用于其他版本。

table
  tr.summary
    td.name
      input(type="text",name="name", value="The name", form="entity_1934")
    td.moreData
      input(type="text",name="moreData", value="testing", form="entity_1934")
    td.evenMore
  tr.info
    td(cospan=3)
      form(action="api/update/", id="entity_1934)
        input(type="text",name="customer")
        button(type="submit") Send