我正在使用 OpenFaces,并且必须与 IE6 兼容。到目前为止,一切都或多或少没有问题。
但是,我遇到了一个问题......
我在一个表单中有几个按钮。保存、添加、导出和删除。在 Firefox 和 IE8 上单击 Export 可以正常工作,调用定义的 bean 中的 exportToCsv(),因此它必须是浏览器行为。在 IE6 中单击 Export 会调用 bean 中的 add() 而不是 exportToCsv()。
任何的想法?
先感谢您。
<o:commandButton>
组件呈现<button>
标签,而不是仅<input>
当您在<o:commandButton>
和之间指定显示按钮的内容时</o:commandButton>
。如果你只需要显示纯文本,那么你不必使用这种方法,你可以使用通常的value
属性,这将导致呈现<input>
标签而不是<button>
,即使用:
<o:commandButton value="Submit"... />
代替
<o:commandButton ...>Submit</o:commandButton>
问题是后一种形式允许放置任意 HTML,因此需要<button>
标签。
IE6 有该<button>
元素的错误。它确实支持它,但它没有正确发送值。
解决方案1:<input type='button'>
改用。这可能是最明显的解决方案,但根据您的页面设计,这可能是个问题,因为它不支持嵌套元素的方式<button>
。
解决方案 2:使用<button>
但通过 Javascript(或更可能是 JQuery)而不是直接提交表单来触发操作,并使用诸如隐藏字段由 JS 根据单击的按钮填充的技术,以确保正确提交详细信息。
这绝对是一个IE6问题:
是时候找到解决方法了...
使用 OpenFaces 时的解决方法
<o:outputLink styleClass="linkButton" ...>
.linkButton {
display: block;
float: left;
margin: 0 0 0 0;
background-color: #f5f5f5;
border: 1px solid #dedede;
border-top: 1px solid #eee;
border-left: 1px solid #eee;
font-family: "Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
text-decoration: none;
font-weight: bold;
color: #565656;
cursor: pointer;
padding: 2px 2px 2px 2px; /* Links */
}
从此来源修改的 CSS: