在<table>标签中直接使用<input>标签的方法

10

我正在生成一个带有多个可编辑行的表格,每一行就像一个员工,这样您可以同时更改多个名称。我在其中有一些需要与表格行一起循环的隐藏字段。

问题是,在表格标签内部放置输入框不是有效的xhtml。而且我也不想将它们包装在<tr><td>标签中,因为这会为不需要新列的隐藏字段明确创建新列。

有人知道是否可以将它们包装在其他东西中以使其成为有效的xhtml吗?

5个回答

8
您可以将隐藏的标签放置在现有单元格中。

是的,我也发现了。不过我不喜欢这种方法,因为它会破坏我的格式。可能没有其他更好的方法,所以我现在就用这个。 - RJD22
这会破坏你的格式吗?隐藏的<input>元素不应对其他任何内容产生影响。 - SLaks
3
不是输出,而是源代码。(很可能我在意琐碎的事情。) - RJD22

6

它们是隐藏的,您可以将它们放在任何可见输入框旁边而不会有问题。

<tr>
  <td><input type="text" name="fname" /></td>
  <td><input type="text" name="lname" />
      <input type="hidden" name="cid" value="11" />
      <input type="hidden" name="uid" value="12" />
  </td>
</tr>

1

我不确定这是否有效或验证,但您可以尝试将包含的行和列设置为visibility hidden。

tr.hidden, td.hidden {
    visibility: hidden;
}

值得一试。


2
visibility:hidden只是让元素不可见,但仍保留它们占据的空间..所以看起来会很“奇怪”。display:none;会更好。 - Gabriele Petrioli

1

在最后一列放置隐藏输入标签有什么问题吗?

...
<td>
  <input type="text" name="yourname" />
  <input type="hidden" name="thisrowuniqueid" value="123" />
</td>
...

0

这是完全有效的XHTML严格代码。可以在表格标签中添加输入字段。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Dicabrio.com</title> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

</head> 
<body>
<form id="test" method="post" action="test.php">
<fieldset>
<legend>test</legend>
<table>
    <tr><td>
    <label>test</label><input type="text" name="test" value="" />
</td></tr>
</table>
</fieldset>
</form>
</body> 
</html>

2
我认为问题在于他们想在声明<table>之后放置<input>标签,但不是包含在行/列中。就像这样... <table> <input type="hidden" .../> <tr><td>stuff</td></tr> </table>如果你一定要让文档通过验证,那么我会把隐藏的输入放在一个隐藏的行里就行了。 - Civil Disobedient

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接