我想知道Internet Explorer 10中的一些奇怪的行为。 在我的页面上,我添加了一个带有jquery的textarea,包括一个占位符属性。像这样:
$('body').append($('<textarea placeholder="Placeholder..."></textarea>'));
占位符属性通常在IE10中运行得很好......除了这种情况。我用这个小提琴中的元素已经测试了它:
正如您所看到的,一个textarea(动态添加的一个)将占位符属性视为实际值 - 我能想象的最烦人的行为......
有谁知道这种效果,也许还有一种解决方法?提前谢谢!
修改
我也意识到,在您手动删除值后,它会按预期工作。您也可以通过jQuery.val('')
将其删除,以使其正常运行。我对这种行为感到很困惑......但这应该是一个合适的“解决方法”。
看到这个小提琴:http://jsfiddle.net/Aqnt5/5/
答案 0 :(得分:18)
不幸的是我没有IE10来测试它,但是这在其他地方都可以使用;
$('body').append('<textarea></textarea>');
$('textarea').attr('placeholder', 'placeholder');
只需仔细检查您的DOCTYPE是否适用于HTML5
这是一个单行(在这里分成几行以使其更加明显),您也可以这样做 -
$('body')
.append('<textarea></textarea>')
.find('textarea')
.attr('placeholder', 'placeholder');
答案 1 :(得分:3)
小提琴:http://jsfiddle.net/Aqnt5/5/
您可以使用jQuery删除该值,以使其行为正确:
$('body').append($('<textarea placeholder="Placeholder..."></textarea>').val(''));
我不知道为什么他们首先将占位符作为值...
答案 2 :(得分:0)
使用jQuery 1.8.3
时,我发现同样的事情:http://jsfiddle.net/wE577/1/。
但如果您使用的版本高于此版本,问题就会消失:http://jsfiddle.net/wE577/2/。
我不清楚jQuery导致此错误的方式,但更新修复了它。
答案 3 :(得分:-1)
placeholder
是HTML5的保留属性,
由于HTML5尚未定义(并且可能会发生更改),
然后并非所有浏览器都支持所有功能(并且不要让我开始关于IE)
供参考: http://www.w3schools.com/html5/att_textarea_placeholder.asp