6

在使用 Coldfusion 9 和 HTML 格式的 cfform 时,我将 cfinput 放在带有标签的页面上,它会在文本框的右侧显示标签。我尝试过使用标签,无论有没有它,但无论我做什么,标签总是在盒子的右边。

<cfform method="post" name="mfForm" >
  <label for="campaign">Mailfile ID:</label>
  <cfinput type="text" name="campaign" id="campaign">
  <cfinput type="submit" name="submit" value="Submit" id="submit">
</cfform>

不记得最近有过这个问题。我只会使用 HTML 表单,但想利用 cf 的自动建议。

4

1 回答 1

5

我不想这么说,但坦率地说,像这样的怪癖就是为什么许多人建议放弃内置的 ajax 功能并直接使用底层库(或一些 jQuery 替代品)的原因。您将拥有更大的控制权、更多的选择,更不用说您不会被 ColdFusion 附带的任何版本所束缚。这些库中的大多数都经常更新,因此在一年内与 CF 捆绑在一起的库通常已经过时了。ExtJS就是一个很好的例子。公版已经到了4.2.1版本,但是CF9还是用3.1.0。

无论如何,回到你的问题......如果你做一个查看源代码,你会看到 CF 生成几个div标签,其中一个包含style="float:left"指令,它可以解释你所看到的行为。

我进行了快速搜索,并偶然发现了 CF8 文档中的一条注释,该注释建议对日期字段进行 hack,这也可能适用于此处:

  • 要在 Internet Explorer 和 Firefox 中正确显示控件旁边的标签文本,您必须将标签文本括在 标签中,并在每行之间<div style="float:left;">放置三个标签。<br>

对于您发布的示例,只需添加 div 似乎对我有用:

<cfform method="post" name="mfForm" >
    <div style="float:left;">
        <label for="campaign">Mailfile ID:</label>
    </div>
    <cfinput type="text" name="campaign" id="campaign" autosuggest="AA,BBB,CCC,DDD">
    <cfinput type="submit" name="submit" value="Submit" id="submit">
</cfform>

但同样,您可能需要考虑直接使用 javascript 库,而不是依赖内置的 ajax 功能,这样您就可以避免这样的怪异现象。

于 2013-11-14T17:11:20.853 回答