1

我正在使用 OpenFaces,并且必须与 IE6 兼容。到目前为止,一切都或多或少没有问题。

但是,我遇到了一个问题......

我在一个表单中有几个按钮。保存、添加、导出和删除。在 Firefox 和 IE8 上单击 Export 可以正常工作,调用定义的 bean 中的 exportToCsv(),因此它必须是浏览器行为。在 IE6 中单击 Export 会调用 bean 中的 add() 而不是 exportToCsv()。

任何的想法?

先感谢您。

4

4 回答 4

3

<o:commandButton>组件呈现<button>标签,而不是仅<input>当您在<o:commandButton>和之间指定显示按钮的内容时</o:commandButton>。如果你只需要显示纯文本,那么你不必使用这种方法,你可以使用通常的value属性,这将导致呈现<input>标签而不是<button>,即使用:

<o:commandButton value="Submit"... /> 

代替

<o:commandButton ...>Submit</o:commandButton>

问题是后一种形式允许放置任意 HTML,因此需要<button>标签。

于 2011-05-23T11:16:45.980 回答
1

IE6 有该<button>元素的错误。它确实支持它,但它没有正确发送值。

解决方案1:<input type='button'>改用。这可能是最明显的解决方案,但根据您的页面设计,这可能是个问题,因为它不支持嵌套元素的方式<button>

解决方案 2:使用<button>但通过 Javascript(或更可能是 JQuery)而不是直接提交表单来触发操作,并使用诸如隐藏字段由 JS 根据单击的按钮填充的技术,以确保正确提交详细信息。

于 2011-05-23T11:08:43.463 回答
0

这绝对是一个IE6问题:

是时候找到解决方法了...

于 2011-05-23T10:55:49.743 回答
0

使用 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:

于 2011-05-23T13:18:38.160 回答