在IE11上输入元素奇怪的焦点行为

时间:2015-03-12 15:50:10

标签: html jsp internet-explorer liferay placeholder

我有一个Liferay 6.2 portlet,它的视图只是重定向到一个包含带有占位符<input>元素的JSP,“搜索” - 这在Chrome中运行得非常好,但是当我使用IE11时会出现以下错误:

当我点击<input>元素中的一次时,实际上我在输入时最终会修改占位符文本,当我按回车键时,提交不会发生。如果我再次单击,占位符将消失,<input>元素仅包含我键入的文本,并且在按Enter键时发生提交。

JSP文件:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%>
<%@ page import="javax.portlet.PortletPreferences"%>

<portlet:defineObjects />
<portlet:actionURL windowState="normal" var="actionURL" />

<li class="dropdown-toggle">
  <a class="search">
    <form action="<portlet:actionURL />" method="POST">
      <div>
        <span>
          <input type="text" name="<portlet:namespace />search"
                 placeholder="Search"></input>
          <i class="icon-search"></i>
        </span>
      </div>
    </form>
  </a>
</li>

生成的HTML:

<li class="dropdown-toggle dockbar-item" id="yui_patched_v3_11_0_1_1426164600459_842">
  <a tabindex="0" class="search" id="yui_patched_v3_11_0_1_1426164600459_616">
    <form id="yui_patched_v3_11_0_1_1426164600459_841" action="CENSORED" method="POST" lpsubmitorig="true" lpsubdone="1">
      <div id="yui_patched_v3_11_0_1_1426164600459_840">
        <span id="yui_patched_v3_11_0_1_1426164600459_839">
          <input name="_1_WAR_searchportlet_search" class="focus" id="yui_patched_v3_11_0_1_1426164600459_838" type="text" placeholder="Search" lpcachedvisval="0" lpcachedvistime="1426164601">
          <i class="icon-search"></i>
        </span>
      </div>
    </form>
  </a>
</li>

其他一些诊断信息:

  • 我第一次尝试在<input>
  • 中输入文字时,并不总是会出现此问题
  • 第一次点击时,class=""元素上的class="focus"属性不会更改为<input>,但会在第二次点击时更改为<input>。我还在焦点和模糊事件上设置了钩子,当我点击<input>字段并且在我再次点击之前没有相应的焦点事件时,会出现问题。
  • 当我将HTML剪切/粘贴到文件并在IE11中加载时,{{1}}表现得像它应该 - 我想知道是否有一些Liferay提供了Javascript导致问题。
  • 我发现了一个类似的Stackoverflow问题没有答案:
    Input Placeholder text becoming input value when hiding and showing elements in angularjs view using IE

0 个答案:

没有答案