2013-11-14 58 views
6

使用ColdFusion 9和cfform处理HTML格式时,我将cfinput放置在带有标签的页面上,它将文本框右侧的标签显示出来。我试过使用标签,有和没有它,但无论我做什么,标签总是在框的右侧。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的autosuggest。

+1

我刚才发现,这只有在使用'autosuggest'属性时才会发生。去看看这个脚本试图找到一个线索。 –

+1

你的css工作表是什么样的? – steve

+0

问题是你正在使用'cfform'和'cfinput'。只需使用纯HTML。管理起来更容易。 –

回答

5

我讨厌这么说,但坦率地说,这就是为什么很多人会直接抛出内置的ajax特性并使用底层库(或者一些jQuery替代品)。您将拥有更大的控制权,更多的选择权,更不用说您不会被绑定到ColdFusion随附的任何版本。大多数这些库经常更新,所以在一年内与CF捆绑在一起的这些库经常过期。 ExtJS就是一个很好的例子。公共版本已经达到4.2.1版本,但CF9仍然使用3.1.0。

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

我做了快速搜索,并在the CF8 docs这表明一劈为datefields也可申请在这里偶然发现一张纸条:

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

简单地增加股利似乎是我与你贴在样品的工作:

<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功能,所以你可以避免这样的怪事。

相关问题