在IE10中通过jQuery在Textarea上的HTML5占位符属性

Den*_*nis 9 jquery html5 textarea placeholder internet-explorer-10

我想知道Internet Explorer 10中的一些奇怪的行为.在我的页面上,我添加了一个带有jquery的textarea,包括一个占位符属性.像这样的东西:

$('body').append($('<textarea placeholder="Placeholder..."></textarea>'));
Run Code Online (Sandbox Code Playgroud)

占位符属性通常在IE10中运行得非常好......除非在这种情况下.我用这个小提琴中已有的元素测试了它:

http://jsfiddle.net/Aqnt5/1/

正如您所看到的,一个textarea(动态添加的一个)将占位符属性视为实际值 - 我能想象的最烦人的行为......

有谁知道这种影响,也许还有一个解决方法?提前致谢!

编辑

在您手动删除值之后,我也意识到它按预期工作.您也可以将其删除jQuery.val('')以使其正常工作.我对这种行为感到很困惑......但这应该是一个合适的"解决方法".看到这个小提琴:http://jsfiddle.net/Aqnt5/5/

Jay*_*ard 18

不幸的是我没有IE10来测试它,但这在其他地方都有用;

$('body').append('<textarea></textarea>');
$('textarea').attr('placeholder', 'placeholder');
Run Code Online (Sandbox Code Playgroud)

只需仔细检查您的DOCTYPE是否适用于HTML5

这是一个单行(在这里分成几行,使其更加明显),你也可以做 -

$('body')
    .append('<textarea></textarea>')
    .find('textarea')
    .attr('placeholder', 'placeholder');
Run Code Online (Sandbox Code Playgroud)

  • 谢谢Jay!之后设置占位符的方式在IE10中完全正常.此外,我通过使用jQuery删除值找到了另一种解决方法(请参阅我的回答). (2认同)