我目前正在使用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