Javascript IE 10/11中停用输入[type=";text";]的占位符

Javascript IE 10/11中停用输入[type=";text";]的占位符,javascript,html,internet-explorer-10,internet-explorer-11,Javascript,Html,Internet Explorer 10,Internet Explorer 11,情景1 为什么在停用的输入[type=“text”]中可以选择占位符 情景2 我甚至遇到过一种奇怪的情况,我可以在占位符中键入文本,但如果我点击一个文本字段,就会发生这种情况,该字段已停用,但因为我留下了另一个字段,并且附加的更改事件启用了日期选择器 有什么想法吗?我错过了什么,还是这是Internet Explorer 10和11的错误?看起来这是一种浏览器行为。作为替代方案,您可以将其保持启用状态(如果需要,将其适当设置为禁用状态),并添加属性onfocus=“this.blur()”

情景1

为什么在停用的
输入[type=“text”]
中可以选择占位符


情景2

我甚至遇到过一种奇怪的情况,我可以在占位符中键入文本,但如果我点击一个文本字段,就会发生这种情况,该字段已停用,但因为我留下了另一个字段,并且附加的更改事件启用了日期选择器


有什么想法吗?我错过了什么,还是这是Internet Explorer 10和11的错误?

看起来这是一种浏览器行为。作为替代方案,您可以将其保持启用状态(如果需要,将其适当设置为禁用状态),并添加属性
onfocus=“this.blur()”


这是修改过的演示:

我对您的JSFIDLE做了一些更改,据我所知,这是您的问题。在JSFIDLE中,您包含了jQuery,所以我想我会添加到您的脚本中。我刚刚更改了您在输入中声明禁用的方式,并对脚本进行了更改,以便它现在删除焦点上的禁用属性

$('#test3').prop("disabled", false).focus();

如果您想更进一步,让用户在占位符被禁用(例如禁用)时甚至不能稍微选择占位符,那么您可以通过添加以下带有适当浏览器前缀的内容来更改css中的用户选择:

user-select:none; 
例如:


为什么要将其标记为关闭?为什么要设置disabled=“disabled”属性?除了
disabled=“disabled”
,还有什么替代方法?我只是使用JSF的
,我可以在IE11中选择占位符文本。看起来你的第二个建议在IE11中很有效。Tmrw回到工作中,我将在我们的项目代码和IE10中测试它。非常感谢。顺便说一句,您的第一个建议不适用于我们的用例,因为用户不得点击进入下一个文本字段(但他可以)。通过“用户不得点击进入下一个字段(但他们可以)”,您的意思是该字段应永久保持禁用状态吗?不,一旦“离开”字段有效,应启用禁用字段。但不能保证用户点击第二个字段而不是页面的另一部分。它实际上是一个日期范围字段对。如果一个字段包含无效值,则另一个字段将被禁用。我尝试了
user select
变量,该变量在JSFIDLE中有效,但在我的代码中无效。我仍然可以编辑占位符…:-/该字段实际上是一个(JQuery)日期选择器,也许我必须考虑到这一点,但我不明白为什么这应该有所不同,因为它仍然是一个带有HTML5占位符的
输入[type=“text”]
字段。如果您希望该字段在符合验证后立即启用,则可以使用。on('keyup',function(){})这是一个适当的解决办法。因为我们使用的是JSF,所以这不是最好的方法。不过,我将检查您的建议tmrw以及Dan的用户选择变体。非常感谢。你好,尤里。丹的回答确实解决了我的问题。谢谢你的回答!
user-select:none;