EJS模板中的colspan,可能显示也可能不显示该选项

时间:2014-02-19 16:15:13

标签: html css

让我们说我有一个这样的形式,转述

<% var inputType = json[i].inputType %>
<tr><td><%=json[i].question%></td></tr>
  ... //iterate over each question, then perform the following checks for each.
<% if(inputType == 'text') { %>
  <tr>
    <td><input type="text" name="text" class="full-width-textbox"></td>
  </tr>
<% } else if(inputType == 'rating') { %>
  <tr>
    <td>Hate it</td>
    <% for(var i=0; i<5; i++) { %>
      <td><input type="radio" value="<%=i%>" name="rating"></td>
    <% } %>
    <td>Love it</td>
  </tr>
<% } else { %>
  <% for(var j=0; j<json[i].answers.length; j++) { %>
    <tr>
      <td><input type="radio"></td>
    </tr>
  <% } %>
<% } %>

现在,我将收到的json将是变量。我不知道它是什么。因此,无法保证我会获得评分&#34;题。我知道,通常情况下,你可以做colspan,但在这种情况下它似乎无法发挥作用。

我如何能够与剩余的trs一起呈现评级,以便产生以下结果?

1. who's your favorite super hero?
  [] thor
  [] green arrow
  [] my goldfish :|
2. what would you rate this question?
  Hate it [] [] [] [] [] Love it

...虽然仍然有可能让json返回这样的东西并能够处理它吗?

1. do you like waffles?
  [] yeah we like waffles!
2. do you like pancakes?
  [] yeah we like pancakes!
3. do do do do do _____:
  [ text goes here        ]

1 个答案:

答案 0 :(得分:0)

根据您的问题,您似乎希望每个单选按钮的问题和选择跨越与评级相同的列数。 您似乎并不真正需要或不需要表格结构,而只是列表ulol

无论整体结构如何,由于单选按钮是内联元素,因此它们可以位于同一元素中(<td>)。

<% } else if(inputType == 'rating') { %>
<tr>
  <td>Hate it
  <% for(var i=0; i<5; i++) { %>
    <input type="radio" value="<%=i%>" name="rating">
  <% } %>
  Love it</td>
</tr>
<% } else { %>

<% } else if(inputType == 'rating') { %>
<li>Hate it
  <% for(var i=0; i<5; i++) { %>
    <input type="radio" value="<%=i%>" name="rating">
  <% } %>
  Love it</li>
<% } else { %>