我目前正在使用JSF 2.2,Bootsfaces 0.8.6和Primefaces 5.3的項目。在處理註冊頁面時,我提到了使用type =「date」顯示Bootsfaces行爲的問題。b:inputText類型「日期」不適用於IE 11和Firefox 47.0
通常,輸入元素具有一種佔位符,用於顯示日期格式化的方式以及元素右端的一些選擇元素。在Chrome和Microsoft Edge上一切正常,但在使用IE11和Firefox 47.0的情況下,輸入將顯示爲標準文本輸入,而不包含選擇元素和格式提示。它看起來像一箇舊的瀏覽器試圖解釋不支持它的HTML5。
所以我也試着在Chrome和Firefox的移動設備上運行,沒有任何問題。最後,我做了一個列表,它的瀏覽器與輸入的單元工作和那些不:
瀏覽器(工作)
- 谷歌瀏覽器(51.0.2704.84米)
- 谷歌瀏覽器在Android(51.0.2704.81)
- Mozilla Firefox瀏覽器在Android(47.0)
- 的Mircosoft邊緣(25.10586.0.0)
- Safari瀏覽器(沒有版本信息,通過朋友測試)
瀏覽器(不工作)
- Mozilla Firefox瀏覽器(47.0)
- 的Internet Explorer(11.306.10586.0)
- Android瀏覽器(不知道確切的版本)
爲了防止一些明顯的錯誤,我儘量保持以下示例的簡潔和簡潔。它顯示了一個測試我所說的內容的例子。
的index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:b="http://bootsfaces.net/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta charset="UTF-8"/>
</h:head>
<h:body>
<h:form id="form">
<b:row style="margin: 1em;">
<b:column span="4">
<b:inputText id="dateInput" type="date" value="#{test.date}" immediate="true"/>
</b:column>
</b:row>
</h:form>
</h:body>
</html>
TestBean.java(Bean來處理輸入)
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean(name = "test")
@ViewScoped
public class TestBean {
private String date;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
System.out.println(date);
}
}
我最後的問題是:
- 是什麼原因導致這種畸形的輸入元素?
- 有沒有解決方案可以讓IE11和Firefox 47.0在PC上運行?
在Firefox中,一些HTML5輸入不起作用。我有一個數字字段的問題 - Firefox將它視爲正常輸入,不像鉻,它只允許數字。 – Bakudan
所以這是一個Firefox的錯誤? – mweber
我在SO中讀到一個問題,這是一個取消的功能 - 無論是在標準模式還是在Firefox。如果我發現它,我會發布它。 – Bakudan