使用IE在angularjs视图中隐藏和显示元素时,输入占位符文本将成为输入值

使用IE在angularjs视图中隐藏和显示元素时,输入占位符文本将成为输入值,angularjs,input,placeholder,Angularjs,Input,Placeholder,我们有这样的占位符输入: <input placeholder="Search..." type="text" /> 在chrome/firefox中一切都很好,但在IE中,有时当我们隐藏和显示元素时,占位符就变成了输入值——你点击输入,你的光标就在元素的3个点之后 “搜索…(此处光标闪烁)” 输入在angularJS ngView中,我们使用ngShow和ngHide根据各种逻辑显示/隐藏它们 当视图第一次呈现时,您可以单击输入并按预期删除占位符,但在隐藏输入并显示一次或两次

我们有这样的占位符输入:

<input placeholder="Search..." type="text" />

在chrome/firefox中一切都很好,但在IE中,有时当我们隐藏和显示元素时,占位符就变成了输入值——你点击输入,你的光标就在元素的3个点之后 “搜索…(此处光标闪烁)

输入在angularJS ngView中,我们使用ngShow和ngHide根据各种逻辑显示/隐藏它们

当视图第一次呈现时,您可以单击输入并按预期删除占位符,但在隐藏输入并显示一次或两次后,问题开始出现


我们甚至尝试过用javascript重新创建浏览器html5占位符行为,绑定到它的模糊/焦点事件,并使用输入值,但我们实际上也得到了同样的行为


我们最初尝试使用placeholder.js,认为它与IE8或更低版本不适合html5有关。。。但是我们在IE11中也遇到了这个问题。

你能发布你的代码吗?也许你可以绑定输入的焦点事件并用css清除占位符
:-ms-input-placeholder{display:none;}
因为它涉及很多文件和视图,所以很难完整地向你展示它。。。这是一个普普通通的打猎者。我在plunker中测试了它,错误没有发生。。。我认为这可能是因为我们的应用程序中有很多脚本运行例程,可能是它们导致浏览器无法跟上占位符,但我怀疑这一理论,并质疑mybe,因为我们正在进行的所有显示和隐藏,可能是我们在某处创建了一些糟糕的html。你解决过这个问题吗?我在portlet JSP生成的简单输入元素中遇到了几乎相同的问题。第一次单击input元素临时编辑Placeholder,第二次单击实际上允许我输入可能发布的数据。在我的情况下,focus事件不知何故被吞没了,我最终能够修改显示的placedholder(临时)。在第二次单击时,焦点事件被传递,输入元素按其应有的方式运行。