OpenFaces 3 и IE6 (действия кнопок) - PullRequest
1 голос
/ 23 мая 2011

Я использую OpenFaces и должен быть совместим с IE6. До сих пор все работает более или менее без проблем.

Однако я столкнулся с проблемой ....

У меня есть несколько кнопок в форме. Сохранить, добавить, экспортировать и удалить. Нажатие на Export прекрасно работает с Firefox и IE8, вызывается exportToCsv () в определенном бине, поэтому это должно быть поведение браузера. Нажатие на Export с IE6 вызывает add () в bean-компоненте вместо exportToCsv ().

Есть идеи?

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 23 мая 2011

Компонент <o:commandButton> отображает тег <button> вместо <input>, только если вы указываете содержимое отображаемой кнопки в диапазоне от <o:commandButton> до </o:commandButton>.Если вам просто нужно отобразить обычный текст, вам не нужно использовать этот подход, и вы можете использовать обычный атрибут value, который приведет к отображению тега <input> вместо <button>, то есть используйте:

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

вместо

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

Дело в том, что последняя форма позволяет размещать произвольный HTML и поэтому требует тег <button>.

1 голос
/ 23 мая 2011

IE6 содержит ошибки с элементом <button>. Он поддерживает его, но не отправляет значение правильно.

Решение 1: используйте <input type='button'> вместо. Вероятно, это наиболее очевидное решение, но в зависимости от дизайна вашей страницы это может быть проблемой, поскольку он не поддерживает вложенные элементы, как <button>.

Решение 2. Используйте <button>, но инициируйте действия через Javascript (или, скорее, JQuery), а не отправляйте форму напрямую, и используйте метод, такой как наличие скрытого поля, которое заполняется JS, в зависимости от того, какая кнопка нажата , чтобы убедиться, что предоставлены правильные данные.

0 голосов
/ 23 мая 2011

Обходной путь при использовании 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 из этого источника:

0 голосов
/ 23 мая 2011
...