【问题标题】:input boxes in table header not working表头中的输入框不起作用
【发布时间】:2009-11-02 20:07:52
【问题描述】:

我对包含输入框的表头有疑问。我在桌子的其余部分有类似的 div,它们工作正常。默认情况下,div 是隐藏的,并且是绝对定位的 div 内的表格通常只包含几列,每列中有一个表单元素。这是典型的:

<a>show editrow</a>
<div class="editrow">
    <form>
        <table>
            <tr>
                <td>
                    <input type="text" />
                </td>
                ...
                <td>
                    <input type="submit" />
                </td>
            </tr>
        </table>
    </form>
</div>

我在标题的第一个元素中以及下面的每个表格行中都有这个。当我把它放在第一个元素中时,我无法单击输入框,但选择框和复选框工作正常。我正在使用 JQuery 表排序器,因此我的表头必须使用 thead、tr、th 标签。令人沮丧的是,有效和无效之间的唯一区别是包含单元格 td vs, th。像这样:

<th>
    doesn't work
</th>

对比

<td>
    does work
</td>

我发现的唯一解决方法是将 div 移到标题之外,并使用一些更复杂的 javascript 来找到它,以便我可以显示/隐藏它/等等。我不喜欢那个解决方案,因为我必须重写很多页面,而且这没有任何意义。我将链接和 div 放在标题中,以防止它与表格的其余部分一起排序。

关于为什么的任何想法?或者如何在不从所有表头中删除 div 的情况下修复它?

【问题讨论】:

  • 我认为您的代码摘录中没有足够的信息。例如,它不显示行和单元格。

标签: php jquery html


【解决方案1】:

我创建了一个快速测试页面,在标题中有一个输入字段,它在我测试过的所有浏览器中都能正常工作。

您是否尝试过从页面中删除所有 jQuery 代码然后对其进行测试?我可能是 jQuery 表格排序器代码中的某个东西,由于某种原因禁用了输入字段。

您是否使用过诸如 firebug 之类的东西来检查输入元素,以查看它是否被禁用或隐藏在其他一些元素后面,使其无法点击?

【讨论】:

  • 那太好了。我只是将其缩小到 jquery table sorter 插件。它适用于启用 jquery,但不适用于表排序器。顺便说一句,我使用 web 开发人员,还没有尝试过 firebug。听起来我会在接下来的几天内。我尝试在 tablesorter 插件中更改 click 事件处理程序代码以返回 true,而不是 false,但这并没有改变任何内容。
  • 嗨梅龙,你知道了吗?如果没有,如果您可以将其上传到某个地方供我们查看代码可能会有所帮助。
  • 现在我觉得自己很愚蠢。 tablesorter 的取消选择属性默认为 true。这搞砸了,但它需要萤火虫,以及 jquery 和 jquery tablesorter 的未压缩版本才能找到它。谢谢。
  • 很高兴你想通了 ;) 祝其余开发者好运!
猜你喜欢
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多